Я пытаюсь получить прокси для веб-запроса (HttpWebRequest или веб-клиент)
В панели управления-> Свойства обозревателя-> Подключения-> Настройки 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;
}