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

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

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

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

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

查看: 10695|回复: 7

[更新] HttpHelper万能框架V2.1版发布,新增单独Byte和Html

[复制链接]
发表于 2017-7-4 09:15:14 | 显示全部楼层 |阅读模式
HttpHelper万能框架V2.1版发布,新增单独Byte和Html返回值

1.添加byte返回类型,当设置byte时不返回Html,共计设置三种:byte,html,htmlbyte
下面是程序演示
[C#] 纯文本查看 复制代码
  //只返回Byte
            HttpHelper http = new HttpHelper();
            //创建Httphelper参数对象
            HttpItem item = new HttpItem()
            {
                URL = "http://www.sufeinet.com",//URL     必需项    
                 ResultType=ResultType.Byte
            };

            HttpResult result = http.GetHtml(item);
            //为空
            string html = result.Html;
//有数据
            byte[] b = result.ResultByte;


            //只返回Html
             item = new HttpItem()
            {
                URL = "http://www.sufeinet.com",//URL     必需项    
                IsReset = true,
                ResultType = ResultType.String
            };

             result = http.GetHtml(item);
//有数据
             html = result.Html;
//空值
            b = result.ResultByte;

            //同时返回Html和Byte
            item = new HttpItem()
            {
                URL = "http://www.sufeinet.com",//URL     必需项    
                IsReset = true,
                ResultType = ResultType.StringByte
            };

            result = http.GetHtml(item);
//有数据
            html = result.Html;
//有数据
            b = result.ResultByte;


2.增加IsReset,是否重置request,response的值,默认不重置,当设置为True时request,response将被设置为Null

霜此方法主要是的高性能的,默认是False
[C#] 纯文本查看 复制代码
   private bool _isReset = false;
        /// <summary>
        /// 是否重置request,response的值,默认不重置,当设置为True时request,response将被设置为Null
        /// </summary>
        public bool IsReset
        {
            get { return _isReset; }
            set { _isReset = value; }
        }

使用时重置request,response的值
[C#] 纯文本查看 复制代码
            //重置request,response为空
            if (item.IsReset)
            {
                request = null;
                response = null;
            }


以上就是本此功能上的更新,从性能我代码上我也做了一些简单调整,就不一一列了,大家直接下载使用吧
最新版下载http://httphelper.sufeinet.com/  


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2017-7-4 09:35:30 | 显示全部楼层
你好,使用你的方法发再存在这个问题,
post的参数和服务器接收到的值,发现参数中的一个+号被替换成了空格,造成这个错误的原因在于+号在url中是特殊字符
通过以下可解决问题,建义集成一下,
http://www.cnblogs.com/fyq891014/p/4188772.html
 楼主| 发表于 2017-7-4 09:57:14 | 显示全部楼层
zjs33 发表于 2017-7-4 09:35
你好,使用你的方法发再存在这个问题,
post的参数和服务器接收到的值,发现参数中的一个+号被替换成了空 ...

强制转换并不适合通用,类里面有专门专转的方法,有需要的人自然会使用,直接加到程序员不答,万一有不需要转换的呢,对吧
发表于 2017-7-4 10:14:22 | 显示全部楼层
一般人理解是 我post 什么参数,对方就应接收什么参数,那会想到 post "aaa+aa" 过去 接收方得到的是 “aaa aa”的,而且也很难发现这个错误,不是这次用在是密钥内容,那会发现数据已被更改过。
 楼主| 发表于 2017-7-4 10:36:12 | 显示全部楼层
zjs33 发表于 2017-7-4 10:14
一般人理解是 我post 什么参数,对方就应接收什么参数,那会想到 post "aaa+aa" 过去 接收方得到的是 “aaa ...

+号在不转码的时候会变成空格这个在我看来应该算是常识,当然这么说可能会引起你的误会,误会我看不起你,其实并没有,并没有别的意思,因为每一个懂Http协议的人都会这么认为,从原理上来讲这个+号是浏览器将空格转成了+,为的就是方便 阅读,也会受到本地电脑环境影响,我浏览器版本影响,也有网站优化的影响,并不是协议引起的,强制修改了才是破坏协议,本地发送的本来就是空格,不是到服务器了才变成空格的,这个你可以抓一下包看看就明白了。就像浏览器会执行JS一样,而Http协议只会传输静态值是一样的。

在我的类里面http://www.sufeinet.com/thread-10031-1-1.html  转码是很方便的,

回想一下Http协议从创建之初到现在升级这么多版本和经过这么多年的积累之所以没有加上你说的情况,显然不是因为他们不懂,而是因为他们太懂了,我们也不应该去破坏它,我理解你使用过程中的心情,但这个确实不适合直接转换。


发表于 2017-7-4 10:54:45 | 显示全部楼层
我只是路过打酱油的。
发表于 2017-7-6 16:40:36 | 显示全部楼层
站长苏飞 发表于 2017-7-4 10:36
+号在不转码的时候会变成空格这个在我看来应该算是常识,当然这么说可能会引起你的误会,误会我看不起你 ...

有道理。顶。顶。顶死你

发表于 2017-7-9 20:53:09 | 显示全部楼层
zjs33 发表于 2017-7-4 09:35
你好,使用你的方法发再存在这个问题,
post的参数和服务器接收到的值,发现参数中的一个+号被替换成了空 ...

有需求的话 可以自己封装一个函数.框架只是框架....我有时候发送数据就是不需要编码这些符号
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

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

GMT+8, 2024-12-19 20:07

© 2014-2021

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