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

含rcp.xml的HTTP Basic认证请求报401错误的解决咨询

解决HTTP Basic Auth访问带问号URL返回401的问题

问题核心原因

你手动在URL末尾添加的?是多余的,也是触发401错误的关键:

  • requests库会自动处理查询参数的拼接逻辑,当你传入params参数时,它会自动在URL路径后添加?并拼接键值对
  • 当你写http://10.1.0.100/rcp.xml?时,服务器会把rcp.xml?当作一个完整的资源路径(而非rcp.xml加空查询参数),这个路径大概率不在服务器的认证白名单内,或者根本不存在,因此返回401

解决方案

直接去掉URL末尾的?,让requests自动处理参数拼接即可:

PARAMS = {
    'command': '0x09A5',
    'direction': 'WRITE',
    'type': 'P_OCTET',
    'payload': '0x810006011303802c'
}

auth = HTTPBasicAuth('user', 'pw')
# 移除URL末尾的?
r = requests.get('http://10.1.0.100/rcp.xml', auth=auth, params=PARAMS)

验证步骤

可以先单独测试不带参数的rcp.xml路径是否能正常通过认证:

auth = HTTPBasicAuth('user', 'pw')
r = requests.get('http://10.1.0.100/rcp.xml', auth=auth)

如果这个请求返回正常,就确认是末尾?的问题;如果还是401,可能服务器对rcp.xml路径有特殊认证规则,需要检查服务器配置或确认凭证是否匹配。

关于CGI的疑问

不需要通过CGI实现,这只是请求URL格式构造错误导致的问题,和CGI无关。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 13:01:19