You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python调用大华DVR CGI API遇401认证失败问题求助

问题:调用大华DVR CGI API始终返回401状态码

我是Python初学者,近期尝试调用大华DVR的CGI API实现多种功能,但初始阶段就遇到问题:无论尝试何种配置,请求API始终返回401状态码。

以下是测试用DVR的型号及当前配置信息:

  • 型号:DH/HCVR5104HS-V6/-AF-DVR-II-A/4-1
  • 软件版本:V4.001.0000000.16
  • 硬件版本:V1.0
  • Web版本:V3.2.7.144755
  • SSL:False

测试代码示例:

from requests import get

res = get("http://192.168.0.50:1234/cgi-bin/global.cgi?action=getCurrentTime", auth=("user","pass"))
print(res.status_code)
## return 401
from requests import get

res = get("http://user:pass@192.168.0.50:1234/cgi-bin/global.cgi?action=getCurrentTime")
print(res.status_code)
## return 401

我还尝试添加从管理页面下载的CA证书作为cert参数,但显然无效。

请问是否可以通过Python获取大华DVR/NVR的配置信息?或者在此场景下如何正确使用认证?恳请各位提供帮助。


回答

1. 明确大华DVR的认证机制

大华部分型号的CGI API不支持HTTP Basic认证,而是采用表单登录+Cookie会话绑定的模式,必须先调用登录接口获取有效会话凭证,再发起后续API请求。

2. 正确的认证请求流程

步骤1:调用登录接口获取会话Cookie

先向设备的登录CGI接口发送POST请求,携带账号密码获取认证Cookie,后续请求复用该会话即可:

import requests

# 登录接口地址,部分型号可能为/userLogin.cgi,需参考对应设备文档
login_url = "http://192.168.0.50:1234/cgi-bin/userLogin.cgi"
login_data = {
    "username": "your_username",
    "password": "your_password"
}

# 创建会话对象,自动维护Cookie
session = requests.Session()
# 发送登录请求,部分设备需指定Content-Type为application/x-www-form-urlencoded
login_res = session.post(login_url, data=login_data)

# 验证登录结果,可根据状态码或响应内容判断
if login_res.status_code == 200:
    print("登录成功")
else:
    print(f"登录失败,状态码:{login_res.status_code}")

步骤2:使用会话请求目标API

登录成功后,用同一个Session对象发起API请求,会话会自动携带认证Cookie:

# 请求获取当前时间的API
time_api_url = "http://192.168.0.50:1234/cgi-bin/global.cgi?action=getCurrentTime"
api_res = session.get(time_api_url)

print(f"请求状态码:{api_res.status_code}")
print(f"响应内容:{api_res.text}")

3. 额外排查点

  • 账号权限:确认使用的账号拥有API访问权限,部分设备需手动开启账号的「远程控制」或「API调用」权限。
  • 接口路径:不同型号的大华设备CGI接口路径可能存在差异,建议查阅对应型号的《CGI开发指南》确认接口地址。
  • 密码加密:部分设备要求密码进行MD5加密后传输,可尝试将密码做MD5哈希处理后再传入请求体。

4. 获取配置信息的可行性

通过正确认证后,可调用对应CGI接口获取设备配置,例如:

  • 获取系统基础信息:/cgi-bin/global.cgi?action=getSystemInfo
  • 获取通道配置:/cgi-bin/channel.cgi?action=getChannelInfo
    具体接口需参考官方提供的CGI文档。

内容的提问来源于stack exchange,提问作者TYeung

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 04:22:18