使用Python requests库通过代理发送HTTPS POST请求时出错
我在发送HTTPS的POST请求时遇到了一个很奇怪的错误。我找到了一些类似的报告,但还没有找到解决办法。如果你有任何建议,我会非常感激!
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)
2 个回答
1
你可以在这里看到:
line = response.fp.readline(_MAXLINE + 1)
TypeError: readline() takes exactly 1 argument (2 given)
请求的函数 readline 只接受 'self' 这个参数,其他的参数都不行。所以这确实是一个库的错误。
在这段讨论的最后:https://github.com/requests/requests/issues/2159,提到可能是一个配置错误的代理导致了这个bug。此外,这个bug在 Python 2.7 中已经修复了,你可以在这里看到:https://bugs.python.org/issue17849
也许你可以考虑升级到 Python 3,以及更新 requests 库。
2
这似乎是httplib中的一个未解决的bug:http://bugs.python.org/issue17849。这个问题上有一个简短的修复补丁,你可以把它应用到你自己的httplib.py
文件上。
我快速浏览了一下urllib3和Requests版本的connection.py
的提交历史,但似乎没有找到任何解决方法。