Kum*_*mar 17 c# proxy httpwebrequest detect
是否可以检测/重用这些设置?
怎么样 ?
我得到的例外情况是这是连接到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"
Run Code Online (Sandbox Code Playgroud)
Rob*_*ine 25
HttpWebRequest实际上默认使用IE代理设置.
如果你不希望使用它们,你必须明确覆盖.Proxy proprty为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();
Run Code Online (Sandbox Code Playgroud)
我得到了一个非常类似的情况,默认情况下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;
}
Run Code Online (Sandbox Code Playgroud)
并且因为它使用默认凭据,所以不应该询问用户他们的详细信息.
请注意,这是我在此处发布的答案的副本,其中包含一个非常类似的问题:C#中的代理基本身份验证:HTTP 407错误
归档时间: |
|
查看次数: |
39910 次 |
最近记录: |