sig*_*ig9 7 c# webproxy windows-8 windows-runtime
我的问题来自我在企业网络上发现的一个问题.我正在使用Windows 8进行开发,因此在我的情况下IE10设置为自动检测代理设置.
在我的C#app中,我使用System.Net.Http.HttpClient.我发现如果我离线,发出失败的请求然后重新联机,我的整个过程的默认IWebProxy对象将变得无法使用.提出失败的请求很重要,否则没有问题.这是一个如何处理这个脆弱的代理对象的例子.
var defaultHandler = new HttpClientHandler();
var fragileProxy = defaultHandler.Proxy;
var httpClient = new HttpClient(defaultHandler);
Run Code Online (Sandbox Code Playgroud)
经过一些实验,我发现我可以通过调用System.Net.WebProxy.GetDefaultProxy()获得一个工作代理;
然后我实现了一个NetworkChangAwareProxy:IWebProxy.那是对的,我的IWebProxy的代理.在内部,只要NetworkChange.NetworkAddressChanged,它就会获得一个新的WebProxy.GetDefaultProxy().
我在应用程序启动时将其连接起来并且问题消失了.
WebRequest.DefaultWebProxy = new NetworkChangeAwareProxy();
Run Code Online (Sandbox Code Playgroud)
希望有人会告诉我有更好的方法来解决这个问题.我的具体问题是关于Application Store Style Apps.(地铁应用)
System.Net.WebProxy.GetDefaultProxy()不可用,System.Net.HttpWebRequest.DefaultWebProxy在离线并返回后只返回相同的已解除代理.
如何在C#Windows应用商店应用中获取新IWebProxy对象的句柄?
System.Net.WebProxy.GetDefaultProxy() 至少自 .net 3 起已被弃用,请改用 System.Net.WebRequest.GetSystemWebProxy()。对于 WinRT,他们删除了许多已弃用的方法。
请参阅http://msdn.microsoft.com/en-us/library/system.net.webproxy.getdefaultproxy.aspx 和http://msdn.microsoft.com/en-us/library/system.net.webrequest.getsystemwebproxy .aspx
| 归档时间: |
|
| 查看次数: |
6677 次 |
| 最近记录: |