我正在尝试编写一个应用程序,其中我向服务器发送初始HTTP post消息并保持连接打开。然后,应用程序会坐下来,直到服务器发回数据。一旦服务器发回数据,我想读取它并将其写入文件(很简单)。
我遇到麻烦的部分是实施
基本上我这样做:
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文档站点提到了httplib.fileno()
,它返回了httplib使用的套接字。我使用的是2.7.0,网站文档是2.7.2,我找不到fileno()
方法。我怀疑把套接字放在httplib上并且自己调用recv
是最好的方法,这是个好主意吗?
任何帮助都有一个例外:请不要告诉我使用其他库。