Вопрос по asp.net, c# – Почему HttpWebRequest выдает исключение, а не возвращает HttpStatusCode.NotFound?

34

Я пытаюсь проверить существование URL-адреса с помощью HttpWebRequest. Я нашел несколько примеров, которые делают в основном это:

<code>HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(Url);
request.Method = "HEAD";
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
    return response.StatusCode;
}
</code>

Тем не менее, если URL действительно неверный, он не возвращает ответ, вместо этого он генерирует исключение.

Я изменил свой код для этого:

<code>try
{
    HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(Url);
    request.Method = "HEAD";
    using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
    {
        return response.StatusCode;
    }
}
catch (System.Net.WebException ex)
{
    var response = ex.Response as HttpWebResponse;
    return response == null ? HttpStatusCode.InternalServerError : response.StatusCode;
}
</code>

который, кажется, наконец-то делает то, что я хочу.

Но я хотел бы знать, почему запрос вызывает исключение, а не возвращает ответ с кодом состояния NotFound?

Ваш Ответ

0   ответов

Похожие вопросы