我正在尝试编写一个应用程序,在其中向服务器发送初始 HTTP 发布消息并保持连接打开。然后,应用程序会一直待着,直到服务器发回数据。一旦服务器发回数据,我想读取它并将其写入文件(很容易)。
我遇到问题的部分是实际
基本上我这样做:
h=http.HTTPConnection(sever, port, timeout)
h.putrequest('POST', selector)
h.putheaders(...)
h.endheaders()
h.send(body)
buffering = False
while 1:
r = h.getresponse(buffering)
f=open(unique_filename, 'w')
f.write(r.read())
f.close()
我期望的是应用程序应该在循环中阻塞,当数据到达时它会被写入文件。我怀疑我使用read
了错误的方式,但是查看 httplib 源代码并没有帮助。
此外,python 文档站点提到了 ahttplib.fileno()
返回 httplib 使用的套接字。我使用的是 2.7.0,网站文档是 2.7.2,我找不到fileno()
方法。我怀疑通过 httplib 获取套接字并调用recv
自己是最好的方法,这是个好主意吗?
任何帮助表示赞赏,但有一个例外:请不要告诉我使用其他库。