我们都知道,不管你是做爬虫也好,采集工具也罢,它们的HTTP/HTTPS模拟访问总是一个基础问题,
我估计有很多人和我一样,虽然这样,那样的内置或是第三方类库用了很多,却总是会有一些不如意的问题存在,
亦或是BUG,或是其它功能上的缺陷,今天我给大家带来一份礼物,也是我多年工作和软件开发累计的结晶之一
SuperWebClient,它是基于C语言的老牌开源协议模拟库CURL,我想做PHP的同学不会陌生,玩LINUX类系统的
同学也不会陌生。
       我也做了很长时间的采集工具平台软件,所以对所有对此有需求的同学所遇到的种种问题也是深有体会,不过
有了我今天带来的这个小玩意,相信,你将不会在头疼。SuperWebClient是基于-C语言老牌的CURL库+LIBCURL.NET
的.NET封装,不过LIBCURL.NET这个开源作者已经很久没有更新,我的工作也是站在前人的结晶上进行一些深度的改进
和组装,以期达到自己用起来简单,方便,称手,我也在长时间的使用和打磨,所以现在已经很稳定,也非常高效
,当然,你需要自己引入到你的项目中使用才能感受它的好处。
        作为这个主题的开篇,我演示一段使用SuperWebClient的代码,非常的简单.

 private void button1_Click(object sender, EventArgs e)
{
// 首先构建一个 嗨 对象-也就是模拟访问的输入对象
HttpInput hi = new HttpInput();
// 需要初始化这个hi,设置是否启用HTTP 1.1,后面是连接和传输超时设定(秒)
HttpManager.Instance.InitWebClient(hi, true, , ); // 接下来就是设置访问的URL,和其它譬如UserAgent,Cookies,Proxy....等等各种特性的设置
// 一般,我们就设置Url 访问路径,其它都是在有需要的时候设置就可以了
hi.Url = "http://www.cnblogs.com";
// 有输入对象,就有对应的输出对象-注意,这个方法是阻塞的,只到结果反馈回来
// 所以,你可以把代码放入独立的线程或是线程池中进行数据的采集
HttpOutput ho = HttpManager.Instance.ProcessRequest(hi);
if (ho.IsOK)
{
// 如果HO的标志IsOK成立,则页面访问是成功的,否则就是页面访问失败
// 遇到失败-你可以自己做后续处理,比如重发起请求或是写LOG
richTextBox1.Text = ho.TxtData;
}
else
{
richTextBox1.Text = "页面访问错误";
} // 最后销毁对象
hi.Dispose(); }

工程引入

所有的操作已经完成,点击按钮,获得操作结果

是不是很简单,相信有了这个小组件,相关的工作将会变的很轻松!主要注意的是,由于底层是基于C的库,所以发布的项目需要包含msvcr100d.dll 这个C的运行期库一起,

后面我会通过一系列实例教程,来教大家分析协议,抓包,并使用SuperWebClient模拟组件的其它个方面。
有任何问题可以 QQ群 180686092 交流

附件下载 http://www.csharpworker.com/forum.php?mod=viewthread&tid=3&extra= 包含完整的组件下载,使用教程,心得和源代码分享

SuperWebClient -一个基于CURL的.NET HTTP/HTTPS模拟神组件(1)的更多相关文章

  1. SuperWebClient -一个基于CURL的.NET HTTP/HTTPS模拟神组件(2)

    今天我们讨论SuperWebClient组件使用中的几个简单主题 1: UserAgent2: Cookies3: POST登录 1:UserAgent这个是客户端标识信息,此信息是用于鉴别正在访问W ...

  2. 一个基于nodejs,支持http/https的中间人(MITM)代理,便于渗透测试和开发调试。

    源码地址:https://github.com/wuchangming/node-mitmproxy node-mitmproxy node-mitmproxy是一个基于nodejs,支持http/h ...

  3. 手把手写一个基于Spring Boot框架下的参数校验组件(JSR-303)

    前言 之前参与的新开放平台研发的过程中,由于不同的接口需要对不同的入参进行校验,这就涉及到通用参数的校验封装,如果不进行封装,那么写出来的校验代码将会风格不统一.校验工具类不一致.维护风险高等其它因素 ...

  4. Yoshino: 一个基于React的可定制化的PC组件库

    Github: https://github.com/Yoshino-UI... Docs: https://yoshino-ui.github.io/#/ Cli-Tool: https://git ...

  5. 【原创】强撸基于 .NET 的 Redis Cluster 集群访问组件

    Hello 大家好,我是TANZAME,我们又见面了.今天我们来聊聊怎么手撸一个 Redis Cluster 集群客户端,纯手工有干货,您细品. 随着业务增长,线上环境的QPS暴增,自然而然将当前的单 ...

  6. 模拟登录神器之PHP基于cURL实现自动模拟登录类

    一.构思 从Firefox浏览器拷贝cURL命令(初始页.提交.提交后) 自动分析curl形成模拟登录代码 默认参数:ssl/302/gzip 二.实现 接口 (一)根据curl信息执行并解析结果 p ...

  7. 简单的php基于curl的反向代理程序

    起因: 经理:需要实现一个反向代理? 我:  简单,nginx分分钟配置好. 经理:嗯?没有nginx? 我: nodejs也行啊,网上有例子分分钟搞定. 经理:嗯?只有虚拟主机,只能上传php程序? ...

  8. SDKMAN一个基于命令行界面的SDK用户环境管理程序

    1.背景 使用过Python开发的朋友,应该了解到Python2和Python3语法的差异,有时候从网上下载了基于不同解释器的代码,要来回切换版本, 使用起来不是很方便,有时候甚至很麻烦.于是有人发明 ...

  9. psutil一个基于python的跨平台系统信息跟踪模块

    受益于这个模块的帮助,在这里我推荐一手. https://pythonhosted.org/psutil/#processes psutil是一个基于python的跨平台系统信息监视模块.在pytho ...

随机推荐

  1. onethink微博插件雏形记

    2014年7月30日 17:08:44 后台微博插件: 一.功能: 1.绑定微博 2.发布的文章自动发布到新浪微博 3.插件独立性强,修改地方少 二.效果: 插件目录 工程地址:http://down ...

  2. Python3基础 set() 集合 创建集合与特点:自动将重复合并掉 不支持索引

    镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...

  3. UVA - 140 Bandwidth(带宽)(全排列)

    题意:给定图,求是带宽最小的结点排列. 分析:结点数最多为8,全排列即可.顶点范围是A~Z. #pragma comment(linker, "/STACK:102400000, 10240 ...

  4. UVa 10706 - Number Sequence

    题目大意:Sk表示从1到k的字符序列,如S4为1234,现如今有如下的序列S1S2...Sk,形如1 12 123 1234这样的序列,给一个数n,让你去这个序列第n个位置上的数字. 可以构建出一个S ...

  5. 一段神奇的代码-关于PHP字符变量奇怪现象的解释

    首先神奇的PHP是支持字符数据类型的,有同学就写了这样一段代码: for ($c = 'a'; $c <= 'z'; $c++) { echo $c . ' '; } 然而结果却不是他想要的a到 ...

  6. idea 15破解方法记录

    So easy! Only one step.     注册时选择 License server ,填 http://idea.lanyus.com  对于Clion等同样适用.

  7. docker tag

    docker tag 命令以及其中的一些概念--之我见 1.  重要的本质的东西是 image - docker 最有用的东西是image,这个应该可以被大部分人接受 - 查看官网的 tag 命令,一 ...

  8. Delphi中String类型原理介绍

    Delphi中字符串的操作很简单,但幕后情况却相当复杂.Pascal传统的字符串操作方法与Windows不同,Windows吸取了C语言的字符串操作方法.32位Delphi中增加了长字符串类型,该类型 ...

  9. js实时显示系统时间

    刚刚在做后台页面最上面要动态显示时间刚写了这个代码 将这段代码加入<head></head> <!--时间显示代码 --><script>functio ...

  10. js动画(四)

    终于到了最后了,这里要告一段落了,整了个js运动框架,咳咳咳,好冷 啊啊啊啊啊啊,这天气.妈的,工资怎么也不发,啊,说好的 人与人之间的信任呢?哎,气诶,不到150字啊,又是这个梗..怎么办?说些什么 ...