编辑:

此问题是无效的。原来透明代理正在作出即使的urllib / httplib的确实作出HTTP 1.1请求最初的向前HTTP 1.0请求。

原来的问题:

默认情况下urllib2.urlopen总是让一个HTTP 1.0请求。

有没有办法把它谈的HTTP 1.1?

有帮助吗?

解决方案

为什么你认为它不是已经使用了HTTP 1.1吗?您是否尝试过类似...

>>> import urllib2
>>> urllib2._opener.handlers[1].set_http_debuglevel(100)
>>> urllib2.urlopen('http://mit.edu').read()[:10]
connect: (mit.edu, 80)
send: 'GET / HTTP/1.1

(等,等)?这将显示它已经发送一个1.1 GET请求。

其他提示

的urllib2使用httplib的做出HTTP请求。我的Python 2.6.4绝对使用HTTP / 1.1 httplib的,虽然它可以处理从1.1,1.0或0.9服务器的响应。早在2.3,这似乎是的情况下(以及可能回到1.5)

然而,如果它是通过代理需要隧道,它将发送一个请求是这样的:

CONNECT host:port HTTP/1.0

和该/1.0字符串是硬编码的。

Python版本您使用,以及如何您使用的urllib2?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top