完全控制Python中的HTTP标头?

时间:2012-09-17 11:22:12

标签: python http http-headers

是否有任何Python HTTP库有助于模仿流行的网络浏览器并支持HTTPS?我想定义HTTP标头的顺序,每个精确标头的存在,cookie值的顺序 - 与浏览器的“指纹”相关的一切。我们需要测试特定的Web服务器。

2 个答案:

答案 0 :(得分:2)

httplib.request会收取OrderedDict个标头。为了符合协议,将自动添加一些标头,如果您在提供的标头中指定它们,则会将其遗漏。

查看putheader_send_request方法,如果他们的行为不符合您的目的,您可以覆盖这些方法。

>>> import httplib
>>> from collections import OrderedDict
>>> h = OrderedDict(('X-A','a'),('X-B','b'),('X-C','c'))
>>> c = httplib.HTTPConnection('localhost')
>>> c.set_debuglevel(1)
>>> r = c.request('GET','/','',h)
send: 'GET / HTTP/1.1\r\nHost: localhost\r\nAccept-Encoding: identity\r\nX-A: a\r\nX-B: b\r\nX-C: c\r\n\r\n'

答案 1 :(得分:0)

查看Requests,它非常易于使用并且满足您的所有需求。 或者,您可以使用Selenium

从Python 驱动 Web浏览器本身