我对巨蟒的即兴表演还很陌生。我需要做的是为发送到服务器的请求设置一个自定义头。具体来说,我需要设置 Content-type 和 Authorization 头。我已经查看了 Python 文档,但是还没有找到它。
Use urllib2 and create a Request object which you then hand to urlopen. http://docs.python.org/library/urllib2.html
I dont really use the "old" urllib anymore.
req = urllib2.Request("http://google.com", None, {'User-agent' : 'Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5'}) response = urllib2.urlopen(req).read()
untested....
adding HTTP headers using urllib2:
from the docs:
import urllib2 req = urllib2.Request('http://www.example.com/') req.add_header('Referer', 'http://www.python.org/') resp = urllib2.urlopen(req) content = resp.read()
For both Python 3 and Python 2, this works:
try: from urllib.request import Request, urlopen # Python 3 except ImportError: from urllib2 import Request, urlopen # Python 2 req = Request('http://api.company.com/items/details?country=US&language=en') req.add_header('apikey', 'xxx') content = urlopen(req).read() print(content)
For multiple headers do as follow:
import urllib2 req = urllib2.Request('http://www.example.com/') req.add_header('param1', '212212') req.add_header('param2', '12345678') req.add_header('other_param1', 'sample') req.add_header('other_param2', 'sample1111') req.add_header('and_any_other_parame', 'testttt') resp = urllib2.urlopen(req) content = resp.read()