簡體   English   中英

使用Python的請求庫和代理發送HTTPS發布請求時出錯

[英]Error when sending a HTTPS post request using Python's requests library with a proxy

發送HTTPS帖子請求時我遇到了一個非常奇怪的錯誤,我發現了一些類似的報告,但我還沒有找到解決方案。 如果您有任何建議,我們將不勝感激!

Traceback (most recent call last):
  File "C:/Data/Python Projects/Experement.py", line 14, in send_request
    return requests.post(URL + '/verify', proxies=proxy).json()
  File "C:\Python27\lib\site-packages\requests\api.py", line 88, in post
    return request('post', url, data=data, **kwargs)
  File "C:\Python27\lib\site-packages\requests\api.py", line 44, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\Python27\lib\site-packages\requests\sessions.py", line 456, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Python27\lib\site-packages\requests\sessions.py", line 559, in send
    r = adapter.send(request, **kwargs)
  File "C:\Python27\lib\site-packages\requests\adapters.py", line 327, in send
    timeout=timeout
  File "C:\Python27\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 488, in urlopen
    conn = self._get_conn(timeout=pool_timeout)
  File "C:\Python27\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 222, in _get_conn
    return conn or self._new_conn()
  File "C:\Python27\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 683, in _new_conn
    return self._prepare_conn(conn)
  File "C:\Python27\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 647, in _prepare_conn
    conn.connect()
  File "C:\Python27\lib\site-packages\requests\packages\urllib3\connection.py", line 179, in connect
    self._tunnel()
  File "c:\Python27\Lib\httplib.py", line 759, in _tunnel
    line = response.fp.readline(_MAXLINE + 1)
TypeError: readline() takes exactly 1 argument (2 given)

這似乎是httplib中的一個漏洞: http//bugs.python.org/issue17849 這個問題附帶了一個簡短的補丁,因此您可以將其應用於您的httplib.py副本。

我不得不通過的提交歷史咋一看connection.py在urllib3和請求urllib3的副本,但它似乎並不像已應用於任何解決方法。

正如你在這里看到的:

line = response.fp.readline(_MAXLINE + 1)
TypeError: readline() takes exactly 1 argument (2 given)

請求的函數readline不接受“self”以外的參數。 所以它確實是一個庫bug。

在討論結束時: https//github.com/requests/requests/issues/2159 ,建議可能是一個錯誤配置的代理,它會觸發錯誤,也可以在python 2.7上修復bug,如下所示: https ://bugs.python.org/issue17849

也許您可以考慮升級到python3,並請求庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM