Я пишу систему обновлений для .NET-приложений, и на данный момент я застрял. Я пытаюсь получить файл на удаленном сервере и его содержимом. Для этого я хочу использовать HttpWebRequest для получения содержимого и кода состояния, если операция завершилась с ошибкой.
Я построил функцию, содержащую запрос-коммутатор, и каждая часть запрашивает код состояния и выполняет действие.
Это выглядит следующим образом:
public void AskStatusCode(int code)
{
switch (code)
{
case 404:
// Do an action
break;
case 405:
// Do an action
break;
}
}
Хорошо, вот и все. Теперь я создал HttpWebRequest и HttpWebResponse.
HttpWebRequest requestChangelog = (HttpWebRequest)HttpWebRequest.Create(url);
requestChangelog.Method = "GET";
HttpWebResponse changelogResponse = (HttpWebResponse)requestChangelog.GetResponse();
// Now call the function and set the status code of the response as parameter.
AskStatusCode((int)changelogResponse.StatusCode);
Итак, теория должна работать, но это не так. Он не будет делать никаких действий, которые я помещал в "case" -block для специального кода состояния.
Я удалил файл с удаленного сервера, чтобы проверить, будет ли он выполнять блок case для кода "404" , но он всегда показывает мне исключение (на удаленном сервере ответили 404), но не что я хотел, чтобы этот код состояния обрабатывался.
Итак, мой вопрос: почему это не работает? Типы являются целыми числами, и я также добавил код статуса в Int32, как вы могли видеть...
К вашей информации: после того, как был проверен код состояния, и если все в порядке, я хочу прочитать содержимое с помощью устройства чтения потока и ResponseStream.
Помощь будет оценена по достоинству. Извините, если вы этого не поняли, я попытался сказать это так ясно, как только мог.