【问题标题】:How to add header in requests如何在请求中添加标头
【发布时间】:2015-08-30 04:52:21
【问题描述】:

有没有其他优雅的方式来向请求中添加标头:

import requests

requests.get(url,headers={'Authorization', 'GoogleLogin auth=%s' % authorization_token}) 

不起作用,而 urllib2 起作用了:

import urllib2

request = urllib2.Request('http://maps.google.com/maps/feeds/maps/default/full')
request.add_header('Authorization', 'GoogleLogin auth=%s' % authorization_token)
urllib2.urlopen(request).read()

【问题讨论】:

标签: python python-requests


【解决方案1】:

您可以通过将字典作为参数传递来添加标题。

这应该可行:

requests.get(url,headers={'Authorization': 'GoogleLogin auth=%s' % authorization_token}) 

为什么您的代码不起作用?

没有将字典传递给 headers 参数。您正在根据add_header() 函数中定义的格式传递值。

根据文档,

requests.get(url, params=None, headers=None, cookies=None, auth=None, 超时=无)

headers - (可选)要发送的 HTTP 标头字典 请求。

为什么 request.add_header() 有效?

您使用request.add_header()添加标头的方式有效,因为该函数在urllib2模块中定义。

Request.add_header(key, val)

它接受两个参数 -

  1. 标题名称(前面定义的dict键)
  2. header值(前面定义的dict中对应key的值)

【讨论】:

    【解决方案2】:

    标题应该是一个字典,因此这应该可以工作

    headers= {}
    headers['Authorization']= 'GoogleLogin auth=%s' % authorization_token
    
    requests.get(url, headers=headers)
    

    【讨论】:

      【解决方案3】:

      您可以使用以下格式向请求请求添加自定义标头,该格式使用 Python 字典,语法中带有冒号 :

      r = requests.get(url, headers={'Authorization': 'GoogleLogin auth=%s' % authorization_token})
      

      Requests documentation for custom headers 中介绍如下:

      >>> url = 'https://api.github.com/some/endpoint'
      >>> headers = {'user-agent': 'my-app/0.0.1'}
      
      >>> r = requests.get(url, headers=headers)
      

      【讨论】:

        【解决方案4】:

        您可以通过headers 关键字传递字典。这在 Python 中非常优雅:-)

         headers = {
             "header_name": "header_value",
         }
        
         requests.get(url, headers=headers)
        

        【讨论】:

          猜你喜欢
          • 2012-04-06
          • 1970-01-01
          • 2011-10-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-06-15
          • 2021-12-12
          • 1970-01-01
          相关资源
          最近更新 更多