当我使用 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,那么您可以在此处下载 httplib.py 和 urllib2.py 的补丁版本 http://pypi.python.org/pypi/httpsproxy_urllib2 .只需替换您现有的版本,或将这 2 个文件放入您的项目中。
