Если вы посмотрите на InnerException
, то увидите, что:
«Не удалось разрешить удаленное имя:« www.fc.edu »»
Этот URL также не работает в моем браузере.
Чтобы получить ответ HTTP, вам нужно, чтобы клиент имел возможность связаться с сервером (даже для того, чтобы получить ошибку 404 ), и в вашем случае произошла ошибка в DNS уровень . [тысяча сто двадцать два]
Некоторые браузеры имеют автозаполнение для таких случаев, когда, если определенный URL не найден, браузер повторяет попытку с другим суффиксом / префиксом, например:
try "x"
if didn't work, try "www." + x
if this didn't work try "www." + x + ".com"
if this didn't work try "www." + x + ".net"
if this didn't work try "www." + x + "." + currentRegionSuffix.
Но обратите внимание, что вы можете измените код с:
catch (Exception e)
{
}
на:
catch (HttpRequestException e)
{
Console.WriteLine(e.InnerException.Message);
}
И вы сможете увидеть причину вашей ошибки.
Кроме того, Вы никогда не должны ловить универсальный Exception
, если метатель не бросил универсальный Exception
, и даже чем, никогда не поймать и ничего не делать с исключение, по крайней мере, записать его.
Обратите внимание, что поскольку вы ожидаете только одной задачи, которую вы можете использовать:
urlTester.RunTestAsync().Wait();
Вместо:
Task.WhenAll(urlTester.RunTestAsync());
Task.WhenAll
создает новый Task
, когда заданный Task
с завершено. в вашем случае вам нужно Task.WaitAll
или Task.WhenAll(...).Wait()
.
Ни в коем случае, вы не можете определить текущие настройки прокси-сервера браузера.
Решением может быть добавление окна параметров в ваше приложение. В этом случае пользователи могут определять новые записи прокси, и ваше приложение может их использовать.