4

見つけることができるほとんどすべてのドキュメントを読みましたが、IEのデフォルトのプロキシ設定をDefaultWebProxy().

このコードはコンパイルして動作するようですが、プロキシ URI を文字列として取得するにはどうすればよいでしょうか?

HttpWebRequest webRequest = 
    (HttpWebRequest)HttpWebRequest.Create("http://www.google.com");

if (WebRequest.DefaultWebProxy != null)
{
    webRequest.Proxy = WebRequest.DefaultWebProxy;
}

編集:

この質問を送信してから、1 つまたは複数のプロキシをさまざまな宛先に設定したり、バイパスしたりできることがわかりました (おそらくローカル イントラネットの宛先の場合)。そのため、 に URI を指定する必要がありますGetProxy()。プロキシを取得する宛先を知る必要があります。[インターネット オプション] で [設定を自動的に検出する] が設定されている場合、ブラウザはローカル ドメインで PAC ファイルを探します。PAC ファイルには、特定の宛先のプロキシ アドレスを決定する Javascript 関数が含まれています。

4

1 に答える 1

5

WebRequest.DefaultWebProxyインターフェイスを実装しIWebProxyます。メソッドを使用してGetProxy、プロキシの URI を取得できます。

var uri = WebRequest.DefaultWebProxy.GetProxy(new Uri("http://www.google.com"));

コメントへの応答:

GetProxyMicrosoftが実装した方法であるため、URIを渡す必要があります...

真剣に、一部のアドレスのプロキシをバイパスするようにブラウザーを構成できるため、これはそうであると思います。このバイパスされたアドレスの 1 つを渡すと、おそらく異なる結果が得られます。

于 2013-06-13T03:59:05.073 に答える