首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python httplib ResponseNotReady

Python httplib ResponseNotReady
EN

Stack Overflow用户
提问于 2010-07-13 03:24:53
回答 6查看 42.3K关注 0票数 43

我正在使用python为elgg编写一个REST客户端,即使请求成功,我也会得到以下响应:

代码语言:javascript
复制
Traceback (most recent call last):
  File "testclient.py", line 94, in <module>
    result = sendMessage(token, h1)
  File "testclient.py", line 46, in sendMessage
    res = h1.getresponse().read()
  File "C:\Python25\lib\httplib.py", line 918, in getresponse
    raise ResponseNotReady()
httplib.ResponseNotReady

查看标题,我看到了('content-length','5749'),所以我知道那里有一个页面,但我不能使用.read()来查看它,因为出现了异常。ResponseNotReady是什么意思?为什么我看不到返回的内容?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-07-13 07:13:33

确保您没有重用上一个连接中的相同对象。一旦服务器保持活动状态结束,套接字关闭,您就会遇到这个问题。

票数 44
EN

Stack Overflow用户

发布于 2012-06-04 12:03:32

前面的答案是正确的,但在另一种情况下,您可能会得到异常:

在没有完整读取任何中间响应的情况下发出多个请求。

例如:

代码语言:javascript
复制
conn.request('PUT',...)
conn.request('GET',...)
# will not work: raises ResponseNotReady

conn.request('PUT',...)
r = conn.getresponse()
r.read() # <-- that's the important call!
conn.request('GET',...)
r = conn.getresponse()
r.read() # <-- same thing

诸若此类。

票数 75
EN

Stack Overflow用户

发布于 2010-08-07 04:30:00

我今天遇到了同样的异常,使用下面的代码:

代码语言:javascript
复制
    conn = httplib.HTTPConnection(self._host, self._port)
    conn.putrequest('GET',
        '/retrieve?id={0}'.format(parsed_store_response['id']))
    retr_response = conn.getresponse()

我没有注意到我使用的是putrequest而不是request;我混合了我的界面。引发ResponseNotReady是因为我还没有实际发送请求。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3231543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档