我發佈文件HttpWebRequest
,以及頁眉和頁腳。標題(大約0.5K)和實際的文件似乎寫得很好,但對於大文件(大約15MB),頁腳(它像29個字節)似乎永遠不會寫入。HttpWebRequest流寫入永不完成
using (Stream requestStream = request.GetRequestStream()) {
requestStream.Write(postHeaderBytes, 0, postHeaderBytes.Length);
byte[] buffer = new byte[Math.Min(4096L, fileSize)];
int bytesRead = 0;
while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0) {
requestStream.Write(buffer, 0, bytesRead);
}
// next line never completes
requestStream.Write(postFooterBytes, 0, postFooterBytes.Length);
// code below is never reached
Console.WriteLine("Why do I never see this message in the console?");
}
有什麼想法?
ETA:嘗試最後Write()
之前刷新流,上關的機會,它會有所幫助,但沒有效果。
再次編輯:新增using()
澄清,我不是一個完整的白癡。另請注意,這是在的另一個using()
塊的fileStream
。
很明顯的一點,但是你確定當你不*使用HttpWebRequest時,腳註是發射的,對吧? (例如從瀏覽器或wget) – harpo 2011-06-02 21:47:25
@harpo我不知道我理解。這是我排出頁腳。 – 2011-06-02 21:51:35
你確定你沒有永遠循環閱讀嗎? – Daniel 2011-06-02 22:10:29