1

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

任何帮助表示赞赏,但有一个例外:请不要告诉我使用其他库。

4

0 回答 0