首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正在覆盖python-requests - user-agent

正在覆盖python-requests - user-agent
EN

Stack Overflow用户
提问于 2015-01-16 00:23:43
回答 2查看 12.3K关注 0票数 9

我有过

代码语言:javascript
复制
    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被禁止。我打印了标题,我得到了:

代码语言:javascript
复制
..'User-Agent': 'python-requests/2.2.1 CPython/2.7.5 Windows/7'..

为什么我的'User-Agent': 'Mozilla/5.0'会被覆盖?这里我漏掉了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-16 00:24:54

headers不会以这种方式保存在会话内部。

您需要在每次发出请求时显式地传递它们,或者设置一次s.headers

代码语言:javascript
复制
with requests.Session() as s:
    s.headers = {'User-Agent': 'Mozilla/5.0'}

您可以通过检查response.request.headers来检查发送的报头是否正确

代码语言:javascript
复制
with requests.Session() as s:
    s.headers = {'User-Agent': 'Mozilla/5.0'}

    r = s.post(api_url, data=json.dumps(logindata))
    print(r.request.headers)

还可以看看Session class是如何实现的--每次您在session对象上设置一个请求it merges the request.headers with headers时:

代码语言:javascript
复制
headers=merge_setting(request.headers, self.headers, dict_class=CaseInsensitiveDict),
票数 12
EN

Stack Overflow用户

发布于 2015-01-16 00:31:24

如果希望会话对所有请求使用特定的标头,则需要在会话上显式设置这些标头:

代码语言:javascript
复制
with requests.Session() as s:
    s.headers.update(headers)
    s.post(api_url, data=json.dumps(logindata))

    # An authorised request.
    r = s.get(api_url, params=payload)

s.headers.update(headers)行将您的字典添加到会话标头中。

会话从不从请求中复制信息以重用于其他请求。仅捕获来自响应的信息(具体地说,是cookie)以供重用。

有关更多详细信息,请参阅requests documentation

会话也可用于向请求方法提供默认数据。这是通过向Session对象的属性提供数据来完成的。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27968100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档