主题:Python,带有json有效负载的请求冻结在> 64KB
在ubuntu linux上请求2.3
for-loop:
response = requests.post(url, data=json.dumps(payload), headers=headers)
results = response.json()
代码有效,但在有效负载>时失败; 64Kb和程序冻结。使用pudb,孤立的问题:
Traceback
File "/home/ubuntu/anaconda/lib/python2.7/socket.py", line 476 in readline
data = self._socket.recv(self._rbufsize)
Variables:
buf: StringIO
buf_len: 0
self: _fileobject
size: 65537
Stack:
readline [_fileobject] socket.py
_read_status [HTTPResponse] httplib.py
begin [HTTPResponse] httplib.py
getresponse [HTTPConnection]
_make_request [HTTPConnectionpool]
urlopen [HTTPConnectionpool]
send [HTTPAdaptor] adapters.py
send [Session] sessions.py:486
request [Session] sessions.py
request api.py:44
post api.py:88
好像没有清除缓冲区。任何想法如何解决这个问题?
答案 0 :(得分:0)
requests
上传了的请求。 服务器没有响应。
特定行正在等待来自套接字的数据; self._socket.recv(self._rbufsize)
表示从套接字读取self._rbufsize
个字节数。
从您的跟踪中可以清楚地看到,这是从HTTPResponse._read_status
行调用的,该行正在尝试阅读HTTP response status line;例如它正在等待服务器将其发送回HTTP 1.1 200 OK
或类似的响应接收线。
您需要弄清楚为什么您的服务器显然无法处理超过64KB的请求。 Python请求已尽其所能上传请求。