C# – 从WebRequest获取响应并处理状态代码

C# – 从WebRequest获取响应并处理状态代码,第1张

概述我正在为.NET应用程序编写一个更新系统,此刻我陷入僵局.我尝试在远程服务器及其内容上获取文件.为此,如果 *** 作失败,我想使用HttpWebRequest获取内容和状态代码. 我构建了一个包含交换机查询的函数,并且每个部分询问状态代码,然后执行一个 *** 作. 这看起来如下: public void AskStatusCode(int code){ switch (code) { case 我正在为.NET应用程序编写一个更新系统,此刻我陷入僵局.我尝试在远程服务器及其内容上获取文件.为此,如果 *** 作失败,我想使用httpWebRequest获取内容和状态代码.

我构建了一个包含交换机查询的函数,并且每个部分询问状态代码,然后执行一个 *** 作.

这看起来如下:

public voID AskStatusCode(int code){  switch (code)  {  case 404:     // Do an action     break;  case 405:     // Do an action     break;  }}

好的,就是这样.现在我创建了一个httpWebRequest和一个httpWebResponse.

httpWebRequest requestChangelog = (httpWebRequest)httpWebRequest.Create(url);requestChangelog.Method = "GET";httpWebResponse changelogResponse = (httpWebResponse)requestChangelog.GetResponse();// Now call the function and set the status code of the response as parameter.AskStatusCode((int)changelogResponse.StatusCode);

所以理论应该有效,但不行.对于特殊状态代码,我不会对“case”-block进行任何 *** 作.

我从远程服务器中删除了该文件,以测试它是否会执行代码为“404”的case-block,但它总是显示一个异常(远程服务器回答404),但不是我希望这个状态代码可以处理.

所以,我的问题是,为什么这不行?类型是整数,我将状态代码转换为Int32,您可以看到…

对于您的信息:状态代码已被检查后,如果可以,我想用流读取器和ResponseStream读取内容.

帮助将不胜感激
对不起,如果你不明白,我尽可能的说清楚.

解决方法 您必须检查响应是否由于服务器错误(WebException提供WebResponse)而失败.
也许这将有助于您:
httpWebResponse response = null;        try        {            httpWebRequest request = (httpWebRequest)httpWebRequest.Create("http://www.Google.com/thisisadeadlink");            request.Method = "GET";            response = (httpWebResponse)request.GetResponse();            StreamReader sr = new StreamReader(response.GetResponseStream());            Console.Write(sr.ReadToEnd());        }        catch (WebException e)        {            if (e.Status == WebExceptionStatus.ProtocolError)            {                response = (httpWebResponse)e.Response;                Console.Write("Errorcode: {0}",(int)response.StatusCode);            }            else            {                Console.Write("Error: {0}",e.Status);            }        }        finally        {            if (response != null)            {                response.Close();            }        }
总结

以上是内存溢出为你收集整理的C# – 从WebRequest获取响应并处理状态代码全部内容,希望文章能够帮你解决C# – 从WebRequest获取响应并处理状态代码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1259748.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存