我在python.org
中读到了示例http.clientimport http.client
conn = http.client.HTTPSConnection("www.python.org")
conn.request("GET", "/")
r1 = conn.getresponse()
print(r1.status, r1.reason)
data1 = r1.read() # This will return entire content.
# The following example demonstrates reading data in chunks.
conn.request("GET", "/")
r1 = conn.getresponse()
没关系,但以下代码不是:
import http.client
conn = http.client.HTTPSConnection("www.python.org")
conn.request("GET", "/")
r1 = conn.getresponse()
# The different here
conn.request("GET", "/")
r1 = conn.getresponse()
Error: http.client.ResponseNotReady: Request-sent
我无法理解。
答案 0 :(得分:1)
来自python官方文档:
HTTPConnection.getresponse()应在请求后调用 发送以从服务器获取响应。返回HTTPResponse 实例
注意:您必须先阅读整个回复,然后才能向服务器发送新请求。
正如您可以注意到的那样,您必须在发送请求之前阅读整个回复,这样做会有所不同......
您可以查看下面的使用完整链接,以获取有关httplib
的更多信息:
答案 1 :(得分:0)
看看你删除了什么:
print(r1.status, r1.reason)
data1 = r1.read()
print
是无害的,但是在您可以在同一连接上获得另一个响应之前,需要读取响应的内容。否则,响应将被阻止,阻止进一步的沟通。