在请求模块中添加头部

189 投票
2 回答
356874 浏览
提问于 2025-04-17 09:18

之前我用的是 httplib 模块来在请求中添加一个头部信息。现在我想用 requests 模块做同样的事情。

这是我正在使用的 Python 请求模块:http://pypi.python.org/pypi/requests

我该如何在 request.post()request.get() 中添加一个头部信息呢?比如说,我需要在每个请求的头部添加一个 foobar 的键。

2 个回答

78

你还可以这样做,为会话对象的所有未来请求设置一个头部,这样在所有的s.get()调用中都会包含x-test:

s = requests.Session()
s.auth = ('user', 'pass')
s.headers.update({'x-test': 'true'})

# both 'x-test' and 'x-test2' are sent
s.get('http://httpbin.org/headers', headers={'x-test2': 'true'})

来源: http://docs.python-requests.org/en/latest/user/advanced/#session-objects

333

来自 http://docs.python-requests.org/en/latest/user/quickstart/

url = 'https://api.github.com/some/endpoint'
payload = {'some': 'data'}
headers = {'content-type': 'application/json'}

r = requests.post(url, data=json.dumps(payload), headers=headers)

你只需要创建一个字典,里面放入你的请求头(也就是键值对,键是请求头的名字,值就是对应的值),然后把这个字典传递给 .get.post 方法中的 headers 参数。

所以,针对你的问题更具体一点:

headers = {'foobar': 'raboof'}
requests.get('http://himom.com', headers=headers)

撰写回答