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

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

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

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

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

查看: 7148|回复: 0

[更新] [C#HttpHelper]2013-11-04关于代理IP使用的重要更新

[复制链接]
发表于 2013-11-6 08:01:11 | 显示全部楼层 |阅读模式
[C#HttpHelper]2013-11-04关于代理IP使用的重要更新

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



本次升级主要是更新了,代理IP的使用方式。
为了不影响大家的使用我保留了原有的代理IP的使用方法,比如下面代码所示
[C#] 纯文本查看 复制代码
            HttpHelper http = new HttpHelper();
            HttpItem item = new HttpItem()
            {
                URL = "http://www.baidu.com",//URL     必需项    
                Method = "get",//URL     可选项 默认为Get    
                ProxyIp = "121.207.195.121:18186",//代理服务器ID     可选项 不需要代理 时可以不设置这三个参数    
                //ProxyPwd = "123456",//代理服务器密码     可选项    
                //ProxyUserName = "administrator",//代理服务器账户名     可选项   
            };
            HttpResult result = http.GetHtml(item);
            string html = result.Html;
            string cookie = result.Cookie;

但是为了大家更方便 的配置我也增加了一个属性
[C#] 纯文本查看 复制代码
  private WebProxy _WebProxy;
        /// <summary>
        /// 设置代理对象
        /// </summary>
        public WebProxy WebProxy
        {
            get { return _WebProxy; }
            set { _WebProxy = value; }
        }


修改了原有的代理配置方法如下
[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;
                }
                //设置安全凭证
                request.Credentials = CredentialCache.DefaultCredentials;
            }
            else if (item.WebProxy != null)
            {
                request.Proxy = item.WebProxy;
            }
        }

当然还是以原有的为主,如果你不使用原有的,而是直接配置WebProxy就会直接使用这个对象,
这样大家就可以自由的进行配置了。非常方便
比如
[C#] 纯文本查看 复制代码
             WebProxy proxyObject = new WebProxy(IP, port);//str为IP地址 port为端口号
              //建议连接
             proxyObject.Credentials = new NetworkCredential("","");
             proxyObject.Credentials = CredentialCache.DefaultCredentials;
             HttpHelper http = new HttpHelper();
             HttpItem item = new HttpItem()
            {
                URL = "http://www.baidu.com",//URL     必需项    
                Method = "get",//URL     可选项 默认为Get    
                WebProxy=proxyObject
            };
            HttpResult result = http.GetHtml(item);
            string html = result.Html;
            string cookie = result.Cookie;

这样更方便,当然对于一些新手低需求的还是可以直接使用默认的方式
现在去下载最后的Httphelper类吧
http://www.sufeinet.com/thread-3-1-1.html

本帖被以下淘专辑推荐:



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

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

GMT+8, 2024-4-25 18:42

© 2014-2021

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