Ark组件简介

Ark组件是基于.NET 4.0框架开发的基础组件,封装了一些常用的功能方法,并提供了若干程序开发的基础框架。

HttpSession简介

HttpSession是Ark组件中负责HTTP通讯的帮助类,使用此类可以满足90%的HTTP请求模拟需求。

HttpSession功能一览
  1. 发起GET请求
  2. 发起POST请求
  3. 发起HEAD请求(不下载获取文件大小)
  4. 维持Session(登录状态)
  5. 模拟Ajax请求
  6. 设置访问来源
  7. 设置超时时间
  8. 模拟浏览器(设置User Agent、Accept等信息)
  9. 设置代理IP
  10. Cookie信息持久化
  11. 自动识别网页字符编码
  12. 支持以各种请求方式下载文件和读取响应流
  13. 超级简单的参数生成

using (var session = new HttpSession())
{
    //发起GET请求,并获取网页响应字符串。
    session.Get("http://www.sum16.com/").GetResponseString();

//发起GET请求,并构建QueryString,请求URL为:http://www.sum16.com/?s=Ark。
    //并设置Encoding为UTF8。
    session.Get("http://www.sum16.com/", new { s = "Ark" }).GetResponseString(Encoding.UTF8);

//发起POST请求,传递POST数据,并将请求内容保存到文件。
    session.Post("http://www.sum16.com/", new { Id = 100, Name = "Soar360" }).Save("1.html");

//在不下载文件的情况获取文件大小,单位是字节。
    session.Head("http://cdn.sum16.com/wp-content/uploads/2015/07/2015-07-19_17-55-40.png").GetContentLength();

//设置HTTP代理
    session.Proxy = new WebProxy("127.0.0.1", 8080);

//设置浏览器信息
    session.Accept = "text/html, */*";//默认值
    session.AcceptLanguage = "zh-CN";//默认值
    session.UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36";//默认值

//将请求作为Ajax请求发起
    session.AsAjax = true;//默认为False

//设置请求来源页面
    session.Referer = String.Empty;//默认值,每次发起请求都会更改这个值为请求路径。

//模拟访问,并忽略响应
    session.Get("http://www.sum16.com/").Ignore();

//Cookie持久化
    var file = new FileInfo("Cookie.dat");

//保存Cookie
    session.CookieContainer.Save(file.OpenWrite());

//读取Cookie
    session.CookieContainer = CookieContainerHelper.GetCookieContainerFromStream(file.OpenRead());
}

Ark组件[转]的更多相关文章

  1. Ark组件设计随想(一)

    Ark组件是L.Skyler自工作以来不断积累和优化的快速开发胶水架. Ark的目标是帮助开发人员简单快速的开始一个新的项目并且尽可能的复用已有功能.让项目开发不受一些基础组件开发影响. Ark定义了 ...

  2. 【ARK UI】HarmonyOS ETS如何创建PixeMap并显示Image组件上

    ​参考资料 图片处理 Context模块 api讲解 image.createPixelMap createPixelMap(number: fd, options: InitializationOp ...

  3. 【ARK UI】HarmonyOS 从相册选择图片并显示到Image组件上

    ​ 参考资料 [Harmony OS][ARK UI]ETS 上下文基本操作 [Harmony OS][ARK UI]ets使用startAbility或startAbilityForResult方式 ...

  4. 拒绝编译等待 - 动态研发模式 ARK

    作者:字节跳动终端技术--徐纪光 背景 iOS 业界研发模式多为 CocoaPods + Xcode + Git 的多仓组件化开发模型.为追求极致的研发体验.提升研发效率,对该研发模式进行了大量优化, ...

  5. ExtJS 4.2 评分组件

    上一文章是扩展ExtJS自带的Date组件.在这里将创建一个评分组件. 目录 1. 介绍 2. 示例 3. 资源下载 1. 介绍 代码参考的是 Sencha Touch 2上的一个RatingStar ...

  6. react组件的生命周期

    写在前面: 阅读了多遍文章之后,自己总结了一个.一遍加强记忆,和日后回顾. 一.实例化(初始化) var Button = React.createClass({ getInitialState: f ...

  7. react-router 组件式配置与对象式配置小区别

    1. react-router 对象式配置 和 组件式配置    组件式配置(Redirect) ----对应---- 对象式配置(onEnter钩子) IndexRedirect -----对应-- ...

  8. Angular2入门系列教程3-多个组件,主从关系

    上一篇 Angular2项目初体验-编写自己的第一个组件 好了,前面简单介绍了Angular2的基本开发,并且写了一个非常简单的组件,这篇文章我们将要学会编写多个组件并且有主从关系 现在,假设我们要做 ...

  9. Angular2入门系列教程2-项目初体验-编写自己的第一个组件

    上一篇 使用Angular-cli搭建Angular2开发环境 Angular2采用组件的编写模式,或者说,Angular2必须使用组件编写,没有组件,你甚至不能将Angular2项目启动起来 紧接着 ...

随机推荐

  1. 感觉总结了一切python常见知识点,可直接运行版本

    #encoding=utf-8#http://python.jobbole.com/85231/#作用域a=1def A(a): a=2 print 'A:',a def B(): print 'B: ...

  2. 创建一个socket服务实时统计在线人数

    主要是两个文件,一个是后端文件,一个是前端文件: 后端文件:有人登录了,就通知所有的正在访问的页面,把总人数+1:反之-1: 前端文件:有人登录了,通知后端,页面关闭了,通知后端,同时接收后端派发来的 ...

  3. lintcode671 循环单词

    循环单词   The words are same rotate words if rotate the word to the right by loop, and get another. Cou ...

  4. Simple layout

    body { padding: 0; margin: 0; overflow: hidden; }   div { display: block; position: relative; }   .c ...

  5. Image控件显示以byte[]字节数组形式存在的图片

    工作中遇到了这样的一个问题.起初觉得很简单,获得了图片的byte[]后,可以将其转换成内存中的图片对象(如System.Drawing.Image),而后赋给页面的Image控件.尝试后才发现这样根本 ...

  6. 实战小项目之ffmpeg推流yolo视频实时检测

    之前实现了yolo图像的在线检测,这次主要完成远程视频的检测.主要包括推流--収流--检测显示三大部分 首先说一下推流,主要使用ffmpeg命令进行本地摄像头的推流,为了实现首屏秒开使用-g设置gop ...

  7. codeforces 269C Flawed Flow(网络流)

    Emuskald considers himself a master of flow algorithms. Now he has completed his most ingenious prog ...

  8. 软件工程 作业part3 读后感

    匆匆看完构建之法,觉得这种不认真看完书就去写随笔去评价这本书是对作者的不尊重,所以觉得应该提问题和写感悟. 我的一点拙见,提的问题在现在这个信息发达的时候感觉只要有时间都可以自己解决. 感觉软件工程这 ...

  9. VS2013运行C++报错:This function or variable may be unsafe. Consider using fopen_s instead.

    在vs2013中运行时发生的关于方法调用的不安全错误. 1.更换方法,但是有些方法更改后参数不变,所以可能比较麻烦. 2.添加一条预处理器定义: 点击项目——>属性——>c/c++——&g ...

  10. dataTables工作总结

    近期在工作中用到了dataTables,现在总结一下在工作中遇到的问题以及解决方法,如有不妥之处希望多多指教,定会改进. 首先这里用的是coloradmin框架,在vs环境下开发. 这里写一个容器用于 ...