如何通过Squid代理让urllib2 / httplib使用HTTP 1.1进行HTTPS连接?

2 投票
1 回答
1711 浏览
提问于 2025-04-15 16:39

当我使用urllib2通过一个squid代理建立HTTP 1.1的连接时,squid却用HTTP 1.0建立了一个新的连接。

我该怎么做才能让Squid和目标服务器用HTTP 1.1进行交流呢?

1 个回答

3

我花了整个下午来解决这个问题,终于找到了办法。所以请原谅我自己回答自己的问题,但我希望这能对其他人有帮助,省去他们的麻烦。

为了让Squid能够和目标服务器进行HTTP 1.1的对话,最初的请求必须通过HTTP CONNECT来发送。这一点在这个bug中有说明,链接是http://bugs.python.org/issue1424152

对于Python 3.x有一个修复方案,并且这个修复已经被移植到Python 3.1和2.6版本中。

如果你正在使用Python 2.5或2.4版本,可以在这里下载修补过的httplib.py和urllib2.py:http://pypi.python.org/pypi/httpsproxy_urllib2。只需替换掉你现有的文件,或者把这两个文件放到你的项目中就可以了。

撰写回答