如何通过大华(DAHUA)摄像头API正确获取热力图图片响应
大华摄像头热力图接口异常返回解决方案
已有大量开发者成功对接过大华摄像头热力图获取接口,返回HeatMap.CGI文件属于典型的调用配置错误,可按以下步骤逐一排查修复:
- 补全接口认证逻辑
大华全系CGI接口默认开启Digest摘要认证,未携带有效认证信息的请求不会返回正常的热力图二进制流,只会返回默认的CGI占位文件。调用接口时必须传入具备对应通道数据查询权限的账号密码完成Digest认证,注意多数固件版本不支持Basic认证方式,不要选错认证类型,普通访客账号即使认证通过也无法拉取热力图数据。 - 修正手册内容偏差
你贴出的官方手册标注的Content-Type: application/binarytet-stream属于印刷笔误,接口正常返回的正确Content-Type为application/octet-stream,不要按手册的错误值做响应校验。 - 校验请求参数有效性
- 先确认查询时间范围内对应通道已经生成热力图数据:热力图为设备按配置的统计周期本地生成,若查询时间跨度过大、对应时间段未开启热力图统计,也会返回异常文件。测试阶段建议将查询时间范围缩窄到24小时内,确认功能正常后再拉大时间跨度。
- 核对通道号配置:多目摄像头、NVR挂载的前端摄像头通道号不一定从1开始,部分设备主通道为0,可先登录设备Web端,在热力图配置页确认对应通道的功能开关已开启、通道号匹配。
- 调整请求头配置
请求时不要自定义设置限制性的Accept头,部分老版本固件如果收到请求携带的Accept指定了文本类返回类型,会优先返回CGI解析结果而非二进制流,将Accept设置为*/*即可。
接口调用正常时,无需理会返回的默认文件名HeatMap.CGI,直接读取响应体中的二进制内容,按jpg格式存储即可打开查看热力图。如果用浏览器直接访问测试,输入账号密码完成Digest认证后仍返回CGI文件,可清空浏览器缓存后重试,或用接口调试工具选择Digest认证模式填好账号密码测试,九成以上的该类问题都是缺失认证导致的。
内容的提问来源于stack exchange,提问作者at.fajar
相关产品推荐
相关产品推荐

