2011-12-04 66 views
0

發生意外的錯誤我米使用HttpWebRequest類異步如下圖所示的代碼(這只是Windows應用程序):HttpWebResponse異步基礎連接已關閉:上一個發送

private void StartWebRequest(string url) 
    {   
      HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 
      request.BeginGetResponse(new AsyncCallback(FinishWebRequest), request);   
    } 

    private void FinishWebRequest(IAsyncResult result) 
    { 
      HttpWebResponse response = (result.AsyncState as HttpWebRequest).EndGetResponse(result) as HttpWebResponse; 
      Stream responseStream = response.GetResponseStream(); 
      int num = 100000; 
      byte[] buffer = new byte[num]; 
      int offset = 0; 
      while ((num2 = responseStream.Read(buffer, offset, 1000)) != 0) 
      { 
       offset += num2; 
      } 
      MemoryStream stream = new MemoryStream(buffer, 0, offset); 
      Bitmap bitmap = (Bitmap)Image.FromStream(stream); 
      bitmap.Save(@"z:\new.jpg"); 
      response.Close(); 

      responseStream.Close(); 
      stream.Close(); 

    } 

有時候,我得到這個錯誤:

The underlying connection was closed : An unexpected error occured on a send 

有無論如何解決這個問題嗎?

回答

2

你必須把你的代碼放在try和catch塊中,並且如果錯誤被捕獲,請嘗試重新連接。您可以預先定義試驗次數(例如嘗試最多3次),網絡環境是不可預測的,因此您必須保持任何不可靠性。順便說一句,最後的審判後,不要忘記關閉流和連接

相關問題