与httplib的持久HTTP连接

时间:2011-11-03 21:53:55

标签: python http httplib

我正在尝试编写一个应用程序,其中我向服务器发送初始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是最好的方法,这是个好主意吗?

任何帮助都有一个例外:请不要告诉我使用其他库。

0 个答案:

没有答案