Я пытаюсь получить прокси-сервер для веб-запроса (HttpWebRequest или WebClient) В управляющем Panel-> Интернет Options-> Connecitons-> Настройки LAN вы увидите 3 варианта:Как получить прокси
- Автоматическое определение настройки
- Использование автоматической настройки сценария
- использовать прокси-сервер для локальной сети
Я хочу, чтобы убедиться, что независимо от того, какой бы ни настройки, мой веб-запрос забрать тот же прокси-сервер, что и браузер.
Для этого я использую следующий код: однако, когда 1. проверяется, я пытаюсь использовать тот же URL-адрес в браузере и моем коде, он выглядит, мой код намного медленнее. Я предполагаю, что способ получения прокси в коде может быть неэффективным или подходящим.
Есть ли что-нибудь, что я могу изменить в своем коде, чтобы отразить скорость браузера?
var client = (HttpWebRequest)WebRequest.Create(uriStr);
client.Headers["something"] = something;
client.Timeout = ConnectionTimeOut; //1 min
var proxyURI = WebRequest.GetSystemWebProxy().GetProxy(uri);
var proxy = new WebProxy(proxyURI, true)
{
Credentials = CredentialCache.DefaultNetworkCredentials
};
//if there is no proxy, proxy will return the same uri
//do we need check if client.Proxy is null or not,
if (proxyURI != null && !string.IsNullOrEmpty(proxyURI.AbsoluteUri) && !proxy.Address.Equals(uri))
{
client.Proxy = proxy;
}
Проведите HTTP-пакеты с помощью WireShark (или Fiddler) в обоих случаях и сравните трассировки. – kol