c# – HttpWebRequest.GetResponse方法抛出404异常
发布时间:2020-12-15 22:15:07 所属栏目:百科 来源:网络整理
导读:我想使用控制台应用程序从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 requ
我想使用控制台应用程序从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("rnResponse Status Code is OK and StatusDescription is: {0}",myHttpWebResponse.StatusDescription); // Releases the resources of the response. myHttpWebResponse.Close(); } catch(WebException e) { Console.WriteLine("rnWebException 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并根据状态和响应内容(如果需要)确定如何处理. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |