簡體   English   中英

HttpWebRequest.GetResponse方法拋出404異常

[英]HttpWebRequest.GetResponse methods throws 404 exception

我想使用控制台應用程序從url下載一個圖像。

我使用了以下代碼:

string sourceUrl = "http://i.ytimg.com/vi/pvBnYBsUi9A/default.jpg"; // Not Found
                //string sourceUrl = "http://i.ytimg.com/vi/OrxZAN1FZUY/default.jpg"; // Found
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(sourceUrl);
                HttpWebResponse response = null;
                try
                {
                    response = (HttpWebResponse)request.GetResponse();
                }
                catch (Exception)
                {

                }

上面的代碼拋出異常行“response =(HttpWebResponse)request.GetResponse();”

但是當我在瀏覽器中訪問“ http://i.ytimg.com/vi/pvBnYBsUi9A/default.jpg ”網址時,將顯示圖像。

我在這里缺少什么?

我在Chrome開發者工具中嘗試了這個網址“ http://i.ytimg.com/vi/pvBnYBsUi9A/default.jpg ”。 它還接收404,但響應包括顯示的圖像。

您的代碼不是異常的原因。 該網站返回404,您的代碼獲得異常。

您可以編寫邏輯來查看響應,即使您獲得404並決定是否采用它,就像瀏覽器那樣。

如果您捕獲WebException,看起來您可以獲得站點返回的響應,這允許您根據文檔查看http請求狀態和響應。

.Net 4.5 doc的示例...

try 
      { 
            // Creates an HttpWebRequest for the specified URL. 
            HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url); 
            // Sends the HttpWebRequest and waits for a response.
            HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse(); 
            if (myHttpWebResponse.StatusCode == HttpStatusCode.OK)
               Console.WriteLine("\r\nResponse Status Code is OK and StatusDescription is: {0}",
                                    myHttpWebResponse.StatusDescription);
            // Releases the resources of the response.
            myHttpWebResponse.Close(); 

        } 
    catch(WebException e) 
       {
            Console.WriteLine("\r\nWebException Raised. The following error occured : {0}",e.Status); 
       }
    catch(Exception e)
    {
        Console.WriteLine("\nThe following Exception was raised : {0}",e.Message);

WebException具有Response和Status屬性。 因此,處理此問題的.Net方式似乎是捕獲WebException並根據狀態和響應內容(如果需要)確定如何處理。

暫無
暫無

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

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