Web リクエスト (HttpWebRequest または webclient) のプロキシを取得しようとしました。コントロール パネル -> インターネット オプション -> 接続 -> LAN 設定で、次の 3 つのオプションが表示されます。
- 設定を自動検出
- 自動構成スクリプトを使用する
- LAN にプロキシ サーバーを使用する
どちらの設定でも、Web リクエストがブラウザと同じプロキシを取得するようにしたいのです。
これを実現するために以下のコードを使用しています。ただし、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;
}