【发布时间】:2009-12-03 17:59:38
【问题描述】:
当我使用 urllib2 通过 squid 代理建立 HTTP 1.1 连接时,squid 在 HTTP 1.0 中建立新的持续连接。
我如何说服 Squid 与目标服务器对话 1.1?
【问题讨论】:
当我使用 urllib2 通过 squid 代理建立 HTTP 1.1 连接时,squid 在 HTTP 1.0 中建立新的持续连接。
我如何说服 Squid 与目标服务器对话 1.1?
【问题讨论】:
在处理了这个问题一下午后,我找到了解决方案。所以请原谅我回答我自己的问题,但如果其他人觉得这很有用并且可以减轻他们的痛苦,那就太好了。
为了让 Squid 与目标服务器进行 HTTP 1.1 对话,对它的原始请求必须通过 HTTP CONNECT 完成。这在错误http://bugs.python.org/issue1424152 中有记录。
有一个针对 py3k 的修复程序,它已被向后移植到 Python 3.1 和 2.6。
如果您正在使用 Python 2.5 或 2.4 安装,那么您可以在 http://pypi.python.org/pypi/httpsproxy_urllib2 下载 httplib.py 和 urllib2.py 的修补版本。只需替换您现有的版本,或将这 2 个文件放入您的项目中。
【讨论】: