我正在通过webrequest与web服务交谈,我在需要身份验证的代理服务器后面。
我想做的是捎带IE /控制面板设置,但我遇到了一些困难......
如果我这样做,一切都很好......
WebProxy proxy = new WebProxy(@"http://my.secret.address:8080");
proxy.Credentials = CredentialCache.DefaultNetworkCredentials;
WebRequest.DefaultWebProxy = proxy;
我真正想做的就是这个......
WebRequest.DefaultWebProxy = WebRequest.GetSystemWebProxy(); // Subsequent webrequest call Fails with a "Unable to connect to remote server" error message.
我真的不想指定代理地址,因为它对所有用户都不一样。实际上有些甚至不会落后于代理。我只想使用IE /控制面板设置。哦,我正在使用Vista以防万一,而且econtrol面板/ IE中的代理设置也使用自动配置文件(proxy.pac文件)
编辑:如此简洁。如何使用IE /控制面板代理设置。包括何时使用自动配置文件?
进一步编辑:
好的,我认为我已将问题缩小到Auto Config的问题。如果我在对话框中明确设置了代理地址,我可以使用.GetSystemWebProxy()设置...但是(就像我的情况一样)如果我使用的是Auto Config pac文件,我就有这个问题。
答案 0 :(得分:1)
在.NET 1.0中,您可以使用:
WebRequest.DefaultWebProxy = WebProxy.GetDefaultProxy();
在2.0中,DefaultWebProxy 假设默认包含IE代理设置,因此该方法已过时。
http://www.west-wind.com/WebLog/posts/2542.aspx有更多信息。
更新:现在显然是.NET 2.0方法;
WebRequest.DefaultProxy = WebRequest.GetSystemWebProxy();
http://msdn.microsoft.com/en-us/library/system.net.webrequest.getsystemwebproxy.aspx
答案 1 :(得分:1)
修复方法是使用.pac Uri
创建WebProxyWebProxy proxy = new WebProxy(@"http://blahblah/proxy.pac);
容易腻......
所以现在我正在通过代理,但代理服务器正在搞乱我的请求,Web服务正在进行操作。 (注意,如果我具体关于代理地址,那就不会这样做......叹气)