c# - 410 代码未被捕获而是抛出错误

标签 c# web-services http stream httpwebrequest

我得到了这段代码,它试图捕获 410 代码,但它在第一行抛出错误并且没有遍历其余代码,

 HttpWebResponse response = (HttpWebResponse)request.GetResponse();

 if (response.StatusCode == HttpStatusCode.NotFound || response.StatusCode == HttpStatusCode.Gone)
            {

有什么方法可以捕获 410 代码以外的代码。

在下面的答案帮助下的答案代码

  try
            {
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            }
            catch (WebException ex)
            {
               if (((HttpWebResponse)(ex.Response)).StatusCode == HttpStatusCode.NotFound || ((HttpWebResponse)(ex.Response)).StatusCode == HttpStatusCode.Gone)
                {

最佳答案

这就是 GetResponse 方法的工作原理。当它没有得到代码 200 时,它会抛出一个异常。

尝试将您的 request.GetResponse() 放入 try .. catch block 中。捕获 WebException。在 catch 子句中,您可以处理状态码不是 200 的情况。

try 
{
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
} 
catch(Exception ex)
{
    var exStatusCode = ex.Code //check the status code against this
    var exResponse = ex.Response //use your response like this
}

关于c# - 410 代码未被捕获而是抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17108059/

相关文章:

Android 通用 XML 解析器

http - 每个客户端的最大 Http 并发连接数

c# - 如何将 unicode 实体转换为 unicode 文本 c#

c# - C#/VB.NET 中的缩略图

java - 我应该把配置文件放在网络服务的什么地方

ios - 使用 Swift 将照片上传到网络服务

c# - ASP.NET Identity 2 是否支持匿名用户?

c# - Lerp 颜色基于 2 个对象之间的距离

HTTP 缓存控制 : What is acceptable default behavior when it's not present?

c# - 部分文件上传被自动删除