簡體   English   中英

C#:處理HttpWebResponse超時問題

[英]C# : Dealing with HttpWebResponse timeout problems

處理我試圖通過HttpWebResponse在我的應用程序中下載的數據時遇到了很大的問題。 我的代碼看起來像這樣:

myWebRequest.Timeout = 10000; 

using (HttpWebResponse myWebResponse = (HttpWebResponse)myWebRequest.GetResponse())
{
     using (Stream ReceiveStream = myWebResponse.GetResponseStream())
     {
         Encoding encode = Encoding.GetEncoding("utf-8");
         StreamReader readStream = new StreamReader(ReceiveStream, encode);
         // Read 1024 characters at a time.
         Char[] read = new Char[1024];

         int count = readStream.Read(read, 0, 1024);

         int break_counter = 0;
         while (count > 0 && break_counter < 10000)
         {
             String str = new String(read, 0, count);
             buffer += str;
             count = readStream.Read(read, 0, 1024);
             break_counter++;
         }
    }
}

此代碼在分離的線程中的幾個實例中運行,因此調試有點困難。 問題是這種方法卡住了,我把它歸咎於與數據的連接不良。

正如您所看到的,我已經設置了超時,並且希望代碼在超時時間到期后才會終止。 它不是! 至少不是所有的時間。 有時我得到一個WebException / Timeout但有幾次它只是卡住了。

什么是超時? 什么時候打電話? 讓我們說HttpWebResponse開始接收數據,但它在傳輸過程中卡在某處。 我有超時嗎? 對我來說,看起來我沒有,因為我的應用程序也被卡住了,並且沒有引發超時異常。

我可以做些什么來修補此問題,或者如何獲得有關此處出現問題的更多信息?

嘗試設置HttpWebRequest.ReadWriteTimeout屬性

寫入或讀取超時前的毫秒數。 默認值為300,000毫秒(5分鍾)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM