http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 24832|回复: 10

[更新] [C#HttpHelper]关于默认不使用IE代理的重要更新

[复制链接]
发表于 2014-2-8 15:17:07 | 显示全部楼层 |阅读模式
[C#HttpHelper]关于默认不使用IE代理的重要更新


导读部分
-------------------------------------------------------------------------------------------------------------
C#HttpHelper类苏飞版--系列教程导航
http://www.sufeinet.com/thread-3-1-1.html



本次升级主要更新如下
1.主要是解决一下在不设置任何代理的情况下,会自动使用IE的代理。这样会影响程序的正常运行,也感觉群里的朋友反映,具体如下

[C#] 纯文本查看 复制代码
♂[苏]aspirer(小A)() 14:48:00 
既然站长在
♂[苏]aspirer(小A)() 14:48:03 
问个事
♂[苏]aspirer(小A)() 14:48:20 
HttpHelper的代理模式能不自动去找寻IE的设置吗?
♂[苏]aspirer(小A)() 14:48:37 
有时Fiddler抓包后被自动设置了代理
♂[苏]aspirer(小A)() 14:48:57 
用自己写的软件时就会发现无法运行
♂[苏]aspirer(小A)() 14:49:32 
能让它默认是无代理模式 吗
♂站长苏飞() 14:49:45 
能是肯定能的,只是这样的功能,完全可以自己获取IP之后再传给Httphelper,如果增加过多可有可无的功能,类就太臃肿了。
♂[苏]aspirer(小A)() 14:50:09 
 
♂[苏]aspirer(小A)() 14:50:42 
那它自动去寻我的IE设置的代理,貌似不合理啊
♂[苏]aspirer(小A)() 14:51:00 
IE只是浏览器。
♂[苏]aspirer(小A)() 14:51:21 
Httpwebrequest 难道和IE的代理设置有关联?
♂站长苏飞() 14:51:23 
不是自动寻找,而是所有Http请求都会默认为IE配置,除非你再次设置
♂站长苏飞() 14:51:30 
当然,
♂站长苏飞() 14:51:37 
这是微软设计的。
♂[苏]aspirer(小A)() 14:51:49 
可否加一句话 比如
♂[苏]aspirer(小A)() 14:51:54 
proxy=none;
♂[苏]aspirer(小A)() 14:51:58 
表示我不用
♂站长苏飞() 14:52:03 
 和加不加这个没有关系的。
♂[苏]aspirer(小A)() 14:52:05 
别给我瞎找IE设置的代理?
♂站长苏飞() 14:52:48 
这不是类的问题是C#语言本身设计时就是这样的Httpwebrequest 设计就是默认使用IE配置
♂[苏]aspirer(小A)() 14:58:51 
ProxyIp = ""
♂[苏]aspirer(小A)() 14:58:54 
这是什么格式?
♂[苏]aspirer(小A)() 14:58:58 
可以带端口吗?
♂站长苏飞() 14:59:00 
其实你直接将它设置为Null就行了,
♂站长苏飞() 14:59:03 
可以,
♂[苏]aspirer(小A)() 14:59:06 
1.2.3.4:8080 ?
♂[渝]版主-Eagle() 14:59:10 
带端口的
♂[渝]版主-Eagle() 14:59:12 
yes
♂站长苏飞() 14:59:13 
是的
♂[渝]版主-Eagle() 14:59:23 
你自己可以访问ip138.com
♂[苏]aspirer(小A)() 14:59:24 
OK
♂[渝]版主-Eagle() 14:59:28 
查看
♂[渝]版主-Eagle() 14:59:37 
代理是否成功
♂[苏]aspirer(小A)() 14:59:51 
这个会的。
♂[苏]aspirer(小A)() 15:00:07 
以前一直没用代理。
♂站长苏飞() 15:00:32 
现在回复Svn的Httphelper就行了,直接设置item.WebProxy=null就是不使用IE配置,
♂站长苏飞() 15:00:34 
我更新过了,
♂站长苏飞() 15:00:45 
以前是把Null过滤了。
♂[苏]aspirer(小A)() 15:03:51 
是item.ProxyIP吧
♂站长苏飞() 15:04:38 
item.WebProxy
♂站长苏飞() 15:04:55 
item.ProxyIP不要设置就行了,如果设置了,就不生效了
♂深海游鱼() 15:05:21 
站长 我看你类里面 没有把cookiecontainer 保存 如果有session这种cookie 怎么办  
♂站长苏飞() 15:05:22 
 
♂站长苏飞() 15:06:24 
 字符串和集合只是Cookie的一种显示方式,不影响个数和内容的,
人生如棋() 15:06:35 
每次操作一次ADD一下就可以了
人生如棋() 15:06:51 
自动老值替换新值的
♂[苏]aspirer(小A)() 15:07:51 
意思就是如果没设置 proxyIP,默认就调用 webproxy
♂[苏]aspirer(小A)() 15:08:07 
如果仍然不想用IE的,那就是webproxy=null
♂站长苏飞() 15:09:13 
是的

大家先来看看修改之后的设置代理部分吧
[C#] 纯文本查看 复制代码
        /// <summary>
        /// 设置代理
        /// </summary>
        /// <param name="item">参数对象</param>
        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;
                }
            }
            else 
            {
                request.Proxy = item.WebProxy;
            }
        }

1.如果要设置代理就这样写
[C#] 纯文本查看 复制代码
            HttpHelper http = new HttpHelper();
            HttpItem item = new HttpItem()
            {
                URL = "http://www.sufeinet.com",//URL     必需项    
                 ProxyIp = "22.22.22.22:55",//代理服务器ID     可选项 不需要代理 时可以不设置这三个参数    
                //ProxyPwd = "123456",//代理服务器密码     可选项    
                //ProxyUserName = "administrator",//代理服务器账户名     可选项   
            };
            HttpResult result = http.GetHtml(item);
            string html = result.Html;
            string cookie = result.Cookie;

如果不需要应用IE配置的话,就不是什么都不设置了,
而是直接这样设置
[C#] 纯文本查看 复制代码
            HttpHelper http = new HttpHelper();
            HttpItem item = new HttpItem()
            {
                URL = "http://www.sufeinet.com",//URL     必需项    
                 WebProxy= null,

            };
            HttpResult result = http.GetHtml(item);
            string html = result.Html;
            string cookie = result.Cookie;

其实这个参数我默认的就是Null,大家不用设置也可以的。
只要不设置ProxyIp 就行了


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2014-2-8 15:49:56 | 显示全部楼层
感谢站长~~
回复

使用道具 举报

发表于 2014-2-18 15:07:47 | 显示全部楼层
刚好一个 项目出现这个问题!  回复一下 留个脚印
发表于 2014-3-1 14:35:15 | 显示全部楼层
现在有些用户使用花刺代理设置IE代理 然后通过软件预约小米 按照你这个帖子里边介绍是不是请求默认就不使用花刺设置的IE代理啦 如果我想默认使用IE代理怎么设置啊 求教
 楼主| 发表于 2014-3-1 15:26:14 | 显示全部楼层
lotilaly 发表于 2014-3-1 14:35
现在有些用户使用花刺代理设置IE代理 然后通过软件预约小米 按照你这个帖子里边介绍是不是请求默认就不使用 ...

默认使用IE代理 就什么也不用设置就可以了,默认的就是使用IE代理 ,只要设置 了WebProxy= null,才是不使用IE默认代理的
发表于 2014-3-1 15:50:17 | 显示全部楼层
站长苏飞 发表于 2014-3-1 15:26
默认使用IE代理 就什么也不用设置就可以了,默认的就是使用IE代理 ,只要设置 了WebProxy= null,才是不使 ...

好的  多谢  
发表于 2014-3-1 19:14:29 | 显示全部楼层
默认使用IE代理是什么意思,难道还有 别的代理吗?
 楼主| 发表于 2014-3-1 20:58:21 | 显示全部楼层
cz19800823 发表于 2014-3-1 19:14
默认使用IE代理是什么意思,难道还有 别的代理吗?

当然,这个你百度吧
发表于 2014-3-28 11:54:22 | 显示全部楼层
站长苏飞 发表于 2014-3-1 15:26
默认使用IE代理 就什么也不用设置就可以了,默认的就是使用IE代理 ,只要设置 了WebProxy= null,才是不使 ...

按菲哥说的,新版本什么也不设置,默认就是使用IE代理访问,可我这里用Fiddler2为么就 抓不到包了?

以前版本可以抓到
发表于 2014-4-19 19:09:17 | 显示全部楼层
mmgx2013 发表于 2014-3-28 11:54
按菲哥说的,新版本什么也不设置,默认就是使用IE代理访问,可我这里用Fiddler2为么就 抓不到包了?

以前 ...

新的版本默认是不使用IE代理的,就算设置WebProxy= null也不行。要到类里把request.Proxy = item.WebProxy; 这句删掉才会用IE的代理
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-22 19:25

© 2014-2021

快速回复 返回顶部 返回列表