向请求模块添加头

前面我使用 httplib模块在请求中添加一个头。现在我尝试用 requests模块做同样的事情。

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

如何将头部添加到 request.post()request.get()。假设我必须在头部的每个请求中添加 foobar键。

295567 次浏览

来自 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)

您只需要创建一个包含头部的 dict (key: value 对,其中键是头部的名称,值是这个头部的值) ,然后在 .get.post方法上将这个 dict 传递给头部参数。

你的问题更具体一点:

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

您还可以这样做,为 Session 对象的所有未来 get 设置头部,其中 x-test 将出现在所有 s.get ()调用中:

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