| 本帖最后由 菩提树 于 2013-9-16 21:48 编辑 
 
 最近,因工作需要,需要用到httphelper,但是,有个奇怪的问题,就是,第一次链接网站时,速度很慢,大概需要10-20秒。接下来就很快了。在网上搜索,得到提示是: WebClient 默认代理是开启的,而我并没有设置!故只有等待超时后才会绕过代理,这样就导致阻塞了. 那么,我就试着在httphelper中把代理服务ip,用户名和密码都设置成null,结果发现没效果。后来,我想着能否改一下httphelper来实现呢。应该实验,修改源码的方法是可行的,现将方法汇报如下: 
        private void SetProxy(HttpItem item){
 if (!string.IsNullOrEmpty(item.ProxyIp))
 {
 //设置代理服务器
 if (item.ProxyIp.Contains(":"))
 {
 string[] plist = item.ProxyIp.Split(':');
 WebProxy myProxy = new WebProxy(plist[0].Trim(), Convert.ToInt32(plist[1].Trim()));
 //建议连接
 myProxy.Credentials = new NetworkCredential(item.ProxyUserName, item.ProxyPwd);
 //给当前请求对象
 request.Proxy = myProxy;
 }
 else
 {
 WebProxy myProxy = new WebProxy(item.ProxyIp, false);
 //建议连接
 myProxy.Credentials = new NetworkCredential(item.ProxyUserName, item.ProxyPwd);
 //给当前请求对象
 request.Proxy = myProxy;
 }
 //设置安全凭证
 request.Credentials = CredentialCache.DefaultNetworkCredentials;
 }
 //黑色部分是修改的代码
             else{
 request.proxy=null;
 }
 }
 |