如果我这样做:
h = httplib2.Http(timeout=60)
resp, content = h.request(uri, method=method, body=body, headers=headers,
redirections=redirections,
connection_type=connection_type)
如果正文大于64K,则数据将被截断。在
这是在一个32位的Python运行时(我认为64位runttime不会发生这种情况)。在
我该怎么做?在
问题是:
https://svn.macports.org/ticket/18376
Tags:
该问题与未修补的2.6.6版本有关。换句话说,它与后来修复的已知错误有关。显然,我得到了一个python构建版本,其中没有包含这个修复。在
有关此问题的详细信息,请参阅此帖子:https://svn.macports.org/ticket/18376
修补后的版本集的“POLL”为0,迫使python改用select。确保您使用的是包含此补丁的python版本,否则将挂起较大的数据块。在
另一个解决方案是重写httplib.py的send方法捕获“35”异常并重新发送数据。在
下面是一些说明这一点的代码:
代替self.sock.sendall公司在
我第一次听说这个。这里有一个简短的程序来证明这对我有用。请注意,我运行的
full.cgi
脚本只返回响应正文中的请求头和请求正文。当我运行这个完整的64K+的内容,包括'结束'往返。在你确定你在wireshark中看到的不仅仅是TCP段吗?这些将被截断到64K以下,但不代表完整的HTTP请求。在
相关问题 更多 >
编程相关推荐