我构建了一个包含交换机查询的函数,并且每个部分询问状态代码,然后执行一个 *** 作.
这看起来如下:
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读取内容.
帮助将不胜感激
对不起,如果你不明白,我尽可能的说清楚.
也许这将有助于您:
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获取响应并处理状态代码所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)