Загрузка WebClient - как обнаружить плохой URL - PullRequest
0 голосов
/ 28 февраля 2012

Недавно мы начали играть с веб-клиентом vb.net 2008 на рабочей станции Windows 7/64 для загрузки файлов с веб-сайта на локальный компьютер.

Он работает, за исключением того, что мы не можем определить, является ли URL-адреснедействительным.Это не выдает ошибку.Если мы используем Async, он вызывает событие «Загрузка завершена», но файл не найден, поскольку URL-адрес был неверным.

Есть ли способ обнаружить неправильный URL-адрес?

Я также заметил, что событияне дает вам ни URL, ни файл?Вроде как должно?

Спасибо

1 Ответ

1 голос
/ 28 февраля 2012

Не совсем понятно, что вы подразумеваете под недействительным URL. Это может означать 2 вещи:

  1. URL неправильно отформатирован
  2. Правильно отформатированный URL, но сервер не отвечает кодом состояния HTTP 2xx или 3xx

Что касается определения правильно отформатированного URL-адреса, вы можете использовать метод Uri.TryCreate, прежде чем пытаться отправить HTTP-запрос. А что касается обнаружения второго условия, то вы не можете обнаружить его, пока не отправите HTTP-запрос на указанный URL-адрес. Если сервер отвечает кодом состояния, отличным от 2xx или 3xx, таким как, например, 404 или 500, будет выдано исключение, которое вы можете перехватить. И если вы используете асинхронные версии методов, исключение не будет выдано, но при полном обратном вызове вы должны проверить, не является ли свойство Error переданного экземпляра EventArgs нулевым, прежде чем пытаться получить доступ к свойству Result.

...