Как предотвратить поиск DNS при загрузке с помощью HttpClient

2

Я не уверен, что делаю правильно или нет

Не будет ли препятствовать DNS lookup если keep-alive установлено false?

Хост: tatoeba.org

URL-адрес: http://188.213.24.161/eng/sentences/show/1

Здесь скриншоты

Изображение 174551

URL указывается выше

хост устанавливается, как показано ниже

Изображение 174551

Теги:
httpclient
dns
.net-4.6.2

1 ответ

2
Лучший ответ

Я считаю, что если вы укажете свой хост как IP-адрес (как и вы), то.net пропустит поиск dsn (независимо от того, поддерживаются ли они в режиме ожидания или настройки заголовка хоста).

Если вы копаете немного в HttpClient, вы увидите, что в основном использует HttpWebRequest для выполнения запросов. https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/HttpClient.cs

В результате HttpWebRequest использует класс ServicePoint, который вызывает Dns.TryInternalResolve.

Dns.TryInternalResolve не пытается разрешить IPAddresses.

Для получения дополнительной информации обратитесь к: https://referencesource.microsoft.com/#System/net/System/Net/DNS.cs,f8023b9c19212708

Я также попытался проверить, что, выполнив следующие строки и отслеживая запросы с использованием netmon

using (HttpClient c = new HttpClient())
{
    var response = c.GetAsync(url).Result;
}

Я видел, что действительно для URL-адреса, который содержит имя хоста.net, выдает запрос DNS, а для запросов с ipAddress в качестве имени хоста нет запроса DNS.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню