pycurl错误:来自HTTPS代理的200响应中的Transfer-Encoding

时间:2017-09-11 20:32:42

标签: python python-2.7 https http-proxy pycurl


我正在尝试使用pycurl库编写HTTP客户端,该库通过代理与源服务器通信。

期待以下流量 -
1. HTTP客户端 - >代理:SSL Exchange ## SUCCESS
2. HTTP客户端 - >代理:HTTP CONNECT https://origin_server ## SUCESS
3.代理 - > Origin Server:TCP连接握手## SUCCESS
4.代理 - > HTTP客户端:200 OK ##收到响应但设置了Transfer-Encoding标头。

以下是客户端代码 -

import pycurl
from StringIO import StringIO

buffer = StringIO()
c = pycurl.Curl()
url = 'https://origin_server/index'
proxy = 'https://local_proxy:8445'

c.setopt(c.URL, url)
c.setopt(c.PROXY, proxy)

c.setopt(c.PROXY_SSLCERT, 'client.cer')
c.setopt(c.PROXY_CAINFO, 'ca.pem')
c.setopt(c.PROXY_SSLKEY, 'private.key')
c.setopt(c.PROXY_SSL_VERIFYPEER, True)
c.setopt(c.WRITEDATA, buffer)
c.setopt(c.VERBOSE, True)
c.setopt(c.TRANSFER_ENCODING, False)

c.perform()
c.close()

收到错误: 追溯(最近的呼叫最后):
  文件" pycurl_client.py",第20行,在     c.perform()
pycurl.error:(56,'转移编码:200回复​​')

有关“转移编码”原因的根本原因的任何帮助被设置为' chuncked'以及如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

问题在于libcurl版本7.53。在升级到libcurl 7.55时,它得到了解决。