Web服務器通過要下載的文件響應POST請求(具有Content-Disposition標頭)。使用urllib或機械化開啓器將響應主體下載到什麼位置?在沒有下載主體的情況下在Python中檢查HTTP POST標題
opener = mechanize.build_opener(HTTPRefererProcessor, HTTPEquivProcessor, HTTPRefreshProcessor)
r = make_post_request() # makes Request object to send
res = opener.open(r)
info = response.info()
content_disp = info.getheader('content-disposition')
filename = content_disp.split('=')[1]
content = res.read() # or skip based on filename
我的印象是,該機構將不會下載,直到讀(),這將是跳過某些下載(如已下載的文件),但我沒有看到性能提升很大有用。
使用像wireshark這樣的流量分析器...你通過連接發送了什麼? – 2011-06-01 19:44:51
WireShark可能會告訴您*文件發送了多少*,但無論您是否調用了read(),Web服務器都將開始傳輸文件。儘管存在的緩衝區可能會填滿,如果尚未調用read(),傳輸可能會停止。 – 2011-06-01 19:50:42