我得到的代码试图捕获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)
{
答案 0 :(得分:2)
这就是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
}