2010-09-19 63 views

回答

1

你可以使用標準庫模塊httplib:在HTTPConnection.request法,body參數(因爲Python 2.6)可以打開的文件對象(最好是一個「非常真實」的文件,因爲,作爲文檔說,「這文件對象應該支持fileno()和read()方法「;但它可能是一個單獨的進程可以寫入的命名或未命名管道)。然而,優點是可疑的,因爲(再次根據文檔)「頭部內容長度自動設置爲正確的值」 - 這是因爲頭部在主體之前,並且文件的內容長度直到文件才能被知道被讀取,意味着整個文件將被讀入內存。

如果你絕望以「流」動態生成的內容爲HTTPPOST(而不是準備這一切事先和然後發帖),你需要一臺服務器支持HTTP的「分塊傳輸編碼」:this SO question「 s接受的答案提到了流行的異步網絡Python包twisted,並給出了一些有用的指針。

+0

謝謝亞歷克斯。雖然你的回答沒有回答我的問題,但它引發了一些關於使用「數據」屬性的想法。我使用了urllib2包,「Request」方法接受了我需要傳遞的字符串,並生成相關輸出。 c = urllib2.Request(「http://www.mymindleaks.com/examples/hello.php」,「World」) res = urllib2.urlopen(c).read() print res – MSW 2010-09-19 05:13:34