Skip to main content
 首页 » 编程设计

python之urllib2/httplib 如何通过 Squid 代理为 HTTPS 连接谈论 HTTP 1.1

2024年09月03日36softidea

当我使用 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 个文件放入您的项目中。