Node.js/React下带digest auth下载海康MJPEG快照问题咨询
运行环境与现状
- 硬件:海康威视IP摄像头,支持向指定HTTP地址推送30帧/秒的MJPEG流
- 技术栈:前端采用JavaScript + React,后端采用Node.js + Express
- 海康官方提供快照抓取接口,访问对应URL即可获取当前实时画面,接口地址为:
http://192.168.0.109/ISAPI/Streaming/channels/1/picture - 目前已掌握本地文件存储的实现方法,但始终无法通过编程方式成功下载该快照图片,已对照海康官方流媒体、快照API端点说明文档调试。
已尝试操作与遇到的问题
已知该快照接口需要Digest摘要认证:
- 直接在浏览器地址栏打开快照链接时,会弹出身份验证弹窗,输入摄像头的用户名、密码后可正常获取图片
- 前端直接调用fetch请求该接口时始终返回401未授权错误,报错信息如下:
GET http://192.168.0.109/ISAPI/Streaming/channels/1/picture net::ERR_ABORTED 401 (Unauthorized) - 尝试过官方文档中给出的携带JSON格式请求参数的调用方式,仍然请求失败

- 按照官方教程给出的MJPEG流地址,目前前端已经可以正常播放实时流,使用的代码如下:
<img width={"90%"} height={"60%"} alt="stream" src={"http://192.168.0.109/ISAPI/Streaming/channels/102/httpPreview"} id="cam1" />
核心诉求
找到正确的请求方式,携带符合要求的Digest认证信息,成功拉取/下载海康摄像头的实时快照。
内容的提问来源于stack exchange,提问作者Luis Quiroga
相关产品推荐
相关产品推荐

