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

Python requests库从文件读取请求头发送POST请求报错如何解决

问题原因

报错的核心原因是requests.post的headers参数要求传入字典类型,但你实际传入的是从文件直接读取的字符串headers_file,requests内部尝试调用headers的items()方法遍历键值对时,字符串没有该方法就触发了AttributeError。

你已经写好了将字符串格式请求头转为字典的工具函数get_headers_as_dict,但只调用了它打印结果,没有把转换后的字典赋值给变量用来发请求。

修复方法

修改发请求前的代码即可:

with open('headers.txt') as f:
    headers_file = f.read()

# 新增:把字符串格式的头转为字典
headers_from_file = get_headers_as_dict(headers_file)

print(headers_from_file)
print(headers_dict)

proxies = {"http": "http://127.0.0.1:8080", "https": "http://127.0.0.1:8080"}
# 修改:headers参数传入转换后的字典,你也可以替换成自己预定义的headers_dict
r = requests.post(url, json=data, headers=headers_from_file, proxies=proxies)

额外注意事项

  • 如果你转换后的头字典和预定义的headers_dict有重复字段需要合并,可以用headers = {**headers_dict, **headers_from_file}的方式合并,后传入的字典会覆盖同key的旧值
  • 注意headers.txt里的换行符要是标准的\n,如果是Windows导出的带\r的换行符,可以把split("\n")改成splitlines()适配不同操作系统的换行格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 07:36:03