1

Мне нужно проверить, вернет ли запрос 500 Внутренняя ошибка сервера или нет (так что ожидается получение ошибки). Я делаю это:Asp.net HttpWebResponse - как я могу не зависеть от WebException для управления потоком?

HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; 
request.Method = "GET"; 
HttpWebResponse response = request.GetResponse() as HttpWebResponse; 

if (response.StatusCode == HttpStatusCode.OK) 
    return true; 
else 
    return false; 

Но когда я получаю Внутренняя ошибка сервера 500, WebException брошен, и я не хочу зависеть от него, чтобы контролировать поток приложения - как это может быть сделано?

ответ

-1

Действительно, учитывая пример на MSDN, нет никакого способа, чтобы не зависеть от исключения для потока управления. Вот пример, который они дают:

try { 
    // Create a web request for an invalid site. Substitute the "invalid site" strong in the Create call with a invalid name. 
    HttpWebRequest myHttpWebRequest = (HttpWebRequest) WebRequest.Create("invalid site"); 

    // Get the associated response for the above request. 
    HttpWebResponse myHttpWebResponse = (HttpWebResponse) myHttpWebRequest.GetResponse(); 
    myHttpWebResponse.Close(); 
} 
catch(WebException e) { 
    Console.WriteLine("This program is expected to throw WebException on successful run."+ 
         "\n\nException Message :" + e.Message); 
    if(e.Status == WebExceptionStatus.ProtocolError) { 
     Console.WriteLine("Status Code : {0}", ((HttpWebResponse)e.Response).StatusCode); 
     Console.WriteLine("Status Description : {0}", ((HttpWebResponse)e.Response).StatusDescription); 
    } 
} 
catch(Exception e) { 
    Console.WriteLine(e.Message); 
} 

По-видимому, иногда вам нужно идти по этому маршруту. Ах хорошо.

 Смежные вопросы

  • Нет связанных вопросов^_^