web-dev-qa-db-ja.com

自動検出/使用方法IE .netHttpWebRequestのプロキシ設定

それらの設定を検出/再利用することは可能ですか?

どうやって ?

私が得ている例外は次のとおりです http://www.google.com に接続している間の例外です

System.Net.WebException: Unable to connect to the remote server --->
  System.Net.Sockets.SocketException: A connection attempt failed because the
  connected party did not properly respond after a period of time, or established
  connection failed because connected Host has failed to respond 66.102.1.99:80

  at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, 
     SocketAddress socketAddress)
  at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)
  at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure,
     Socket s4, Socket s6, Socket& socket, IPAddress& address,
     ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout,
     Exception& exception)
  --- End of inner exception stack trace ---
  at System.Net.HttpWebRequest.GetResponse()
  at mvcTest.MvcApplication.Application_Start() in
     C:\\home\\test\\Application1\\Application1\\Program.cs:line 33"
17
Kumar

HttpWebRequestは、実際にはデフォルトでIEプロキシ設定を使用します。

使用しない使用する場合は、.Proxyプロパティをnull(プロキシなし)または選択したプロキシ設定に明確にオーバーライドする必要があります。

 HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://news.bbc.co.uk");
 //request.Proxy = null; // uncomment this to bypass the default (IE) proxy settings
 HttpWebResponse response = (HttpWebResponse)request.GetResponse();

 Console.WriteLine("Done - press return");
 Console.ReadLine();
25
Rob Levine

HttpWebRequestがデフォルトで正しいプロキシの詳細を取得せず、UseDefaultCredentialsの設定も機能しないという非常によく似た状況が発生していました。ただし、コードで設定を強制すると、うまくいきました。

IWebProxy proxy = myWebRequest.Proxy;
if (proxy != null) {
    string proxyuri = proxy.GetProxy(myWebRequest.RequestUri).ToString;
    myWebRequest.UseDefaultCredentials = true;
    myWebRequest.Proxy = new WebProxy(proxyuri, false);
    myWebRequest.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
}

また、これはデフォルトの資格情報を使用するため、ユーザーに詳細を尋ねるべきではありません。

これは、非常によく似た問題についてここに投稿した私の回答の複製であることに注意してください: C#のプロキシ基本認証:HTTP 407エラー

7
Carl Onager

これをISAサーバーでNiceを再生するのに問題がある場合は、次の方法でプロキシを設定してみてください。

IWebProxy webProxy = WebRequest.DefaultWebProxy;
webProxy.Credentials = CredentialCache.DefaultNetworkCredentials;
myRequest.Proxy = webProxy;
2
Vedran

これは、WebRequest.Proxyが明示的に設定されていない場合(デフォルトではWebRequest.DefaultWebProxyに設定されている場合)、デフォルトで発生します。

1
John Saunders