Python:如何写入http输入流

时间:2010-09-19 03:36:32

标签: python http

我可以看到几个从http流中读取的示例。但是如何使用python写入http输入流?

1 个答案:

答案 0 :(得分:1)

您可以使用标准库模块httplib:在HTTPConnection.request方法中,body参数(自Python 2.6起)可以是一个打开的文件对象(更好的是“非常真实”)文件,因为,正如文档所说,“这个文件对象应该支持fileno()和read()方法”;但它可以是一个命名或未命名的管道,单独的进程可以写入该管道)。然而,优点是可疑的,因为(再次根据文档)“标题内容长度自动设置为正确的值” - 由于标题来自正文,文件的内容长度直到文件才能知道被读取,意味着整个文件无论如何都将被读入内存。

如果您绝望将动态生成的内容“流式传输”到HTTP POST(而不是事先准备好所有内容,然后发布),你需要一个支持HTTP“分块传输编码”的服务器:this SO question接受的答案提到了流行的异步网络Python包twisted,并提供了一些有用的指示。