我正在尝试使用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'以及如何解决这个问题?
答案 0 :(得分:0)
问题在于libcurl版本7.53。在升级到libcurl 7.55时,它得到了解决。