是否还有其他优雅的方法可以为请求添加标头:
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()
答案 0 :(得分:6)
您可以通过将字典作为参数传递来添加标题。
这应该有效:
add_header()
为什么您的代码无效?
你没有将字典传递给headers参数。您正在根据request.add_header()
函数中定义的格式传递值。
根据文件,
requests.get(url,params = None,headers = None,cookies = None,auth = None, 超时=无)
headers - (可选)用于发送的HTTP标头字典 请求。
为什么request.add_header()有效?
您使用urllib2
添加标头的方式有效,因为该功能在Request.add_header(key, val)
模块中定义为。
var span=$('#view'); span.text("Changing text does not update").css("display","inline-block").height(); span.css("display","inline");
它接受两个参数 -
答案 1 :(得分:1)
您可以使用以下格式将自定义标头添加到请求请求中,该格式使用在其语法中具有冒号:
的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)
答案 2 :(得分:0)
您可以通过headers
关键字传递字典。这在Python中非常优雅: - )
headers = {
"header_name": "header_value",
}
requests.get(url, headers=headers)
答案 3 :(得分:0)
标题应该是一个字典,因此这应该起作用
headers= {}
headers['Authorization']= 'GoogleLogin auth=%s' % authorization_token
requests.get(url, headers=headers)