Python json有效负载的请求冻结在>64Kb
主题:Python,json有效负载的请求冻结在>64Kb 在ubuntu linux上使用请求2.3Python json有效负载的请求冻结在>64Kb,python,json,request,Python,Json,Request,主题: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/anacon
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
似乎缓冲区没有被清除。有什么办法解决这个问题吗?请求已经上传了请求。服务器没有响应
特定线路正在等待来自套接字的数据;self.\u socket.recvself.\u rbufsize表示读取到self.\u rbufsize套接字中的字节数
从您的跟踪中,很明显这是从HTTPResponse调用的;e、 g.它正在等待服务器将其发送回HTTP 1.1 200 OK或收到的类似响应行
您需要弄清楚为什么您的服务器显然无法处理超过64KB的请求。Python请求已经尽其所能上传请求。该行正在等待套接字接收数据。套接字被阻止,而不是缓冲区。在跟踪点,服务器挂起。完整请求已发送到服务器,现在正在等待服务器响应HTTP/1.1状态行。非常感谢,因为它有助于隔离。服务器上不是请求就是wekzeug。使用3个不同的http服务器尝试了werkzeug——运行werzeug、gevent.pywsgi和tornado附带的简单——结果是一样的。问题是我无法将问题隔离到服务器上的特定代码。请尝试将客户端与服务器隔离。当你发布到http://httpbin.org/post 例如这是一个echo服务器,请参阅以获取一些文档。您的网络上有防火墙或路由器吗?如果httpbin也挂起,那么发布到站点的SSL版本会有所不同吗?当您使用不同的网络发布数据时会发生什么情况?