410代码没有被捕获,而是抛出错误



我得到了这个代码,它试图捕获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块。捕获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
}

相关内容

  • 没有找到相关文章

最新更新