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

如何为urllib构建的Python请求opener添加自定义请求头?

如何给urllib请求添加自定义请求头?

没问题!要给你的urllib请求加上自定义请求头,只需要稍微调整代码结构,用Request对象来封装URL和请求头信息即可。下面是修改后的完整代码:

import six
from six.moves.urllib import request

# 初始化带代理的opener
opener = request.build_opener(
    request.ProxyHandler({'http': 'http://127.0.0.1:9000'})
)

# 定义你的自定义请求头(按需修改)
custom_headers = {
    'User-Agent': 'MyCustomClient/1.0',
    'X-Custom-Header': 'MyUniqueValue',
    # 可以在这里添加任意需要的请求头
}

# 创建包含请求头的Request对象
req = request.Request('http://example.com/data.json', headers=custom_headers)

# 发送请求并读取响应内容
response = opener.open(req)
print(response.read())

关键说明:

  • 不再直接把URL字符串传给opener.open(),而是先创建request.Request实例,把URL和自定义头都传入这个对象。这样opener在发送请求时会自动带上这些头信息。
  • headers参数接收一个字典,键是请求头的名称,值是对应的内容。你可以根据目标服务的要求,添加任意数量的自定义头。
  • 如果需要后续动态添加单个请求头,还可以用req.add_header()方法,比如:
    req.add_header('Authorization', 'Bearer YourAuthToken')
    

这样修改后,目标URL就能收到你设置的自定义请求头,并根据这些头做出相应的响应啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:25:21