我有
logindata = {
'username': 'me',
'password': 'blbla'
}
payload = {'from':'me', 'lang':'en', 'url':csv_url}
headers = {
'User-Agent': 'Mozilla/5.0'
}
api_url = 'http://dev.mypage.com/admin/app/import/'
with requests.Session() as s:
s.post(api_url, data=json.dumps(logindata), headers=headers)
print s.headers
# An authorised request.
r = s.get(api_url, params=payload, headers=headers)
我被拒绝了,但这是因为403禁止。我打印了标题,我得到:
..'User-Agent': 'python-requests/2.2.1 CPython/2.7.5 Windows/7'..
为什么我的'User-Agent': 'Mozilla/5.0'
被重写?我错过了什么?
如果希望会话对所有请求使用特定的头,则需要在会话上显式设置这些头:
s.headers.update(headers)
行将字典添加到会话头。会话从不从请求复制信息以供其他请求重用。只有来自响应(特别是cookies)的信息才会被捕获以供重用。
有关详细信息,请参见^{} Session Objects documentation :
headers
不以这种方式保存在session中。您需要在每次发出请求时显式地传递它们,或者设置一次^{} :
您可以通过检查
response.request.headers
来检查是否发送了正确的邮件头:另请参见^{} class 是如何实现的-每次您对会话对象设置请求it merges the ^{} with ^{} 时:
相关问题 更多 >
编程相关推荐