簡體   English   中英

c#HttpWebResponse響應null而不是504

[英]c# HttpWebResponse response null instead of 504

該捕獲應該給我一個504,但由於某種原因,我在以下方面得到了空值:

  response = (HttpWebResponse)e.Response;

下面是我的代碼:

var url = "http://www.go435345ogle.com";
HttpWebResponse response = null;
HttpStatusCode statusCode;
get http response
get status 
try
{
    // Creates an HttpWebRequest for the specified URL. 
    HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
    //HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(keys.Value.Substring(0, keys.Key.Length - 1));
    // Sends the HttpWebRequest and waits for a response.

    response = (HttpWebResponse)myHttpWebRequest.GetResponse();

}
catch (WebException e)
{
    Console.WriteLine("\r\nWebException Raised. The following error occured : {0}", e.Status);
    response = (HttpWebResponse)e.Response;

}
statusCode = response.StatusCode;
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
var sResponse = reader.ReadToEnd();
// Console.WriteLine(sResponse);
Console.WriteLine("Response Code: " + (int)statusCode + " - " + statusCode.ToString());
}

這是預期的行為。 由於www.go435345ogle.com域不存在,因此沒有服務器可以將請求發送到該服務器,因此也沒有響應可以接收。 因此, WebException.Response僅返回null。 微軟的文檔明確指出, WebException.Response返回:

如果可以從Internet資源獲得響應,則為WebResponse實例,其中包含來自Internet資源的錯誤響應。 否則為null

暫無
暫無

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

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