我得到了这段代码,它试图捕获 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/