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. 180713-Spring之借助Redis设计访问计数器之扩展篇

    之前写了一篇博文,简单的介绍了下如何利用Redis配合Spring搭建一个web的访问计数器,之前的内容比较初级,现在考虑对其进行扩展,新增访问者记录 记录当前站点的总访问人数(根据Ip或则设备号) ...

  2. Sysbench安装步骤及详情

    Sysbench安装步骤及详情 Sysbench是压力测试工具,可以测试系统的CPU,内存,I/O等,也可以用于数据库的性能测试 Sysbench安装步骤: 安装具体分为Ubuntu16.04和Cen ...

  3. Unity初探—SpaceShoot

    Unity初探—SpaceShoot DestroyByBoundary脚本(C#) 在游戏中我们添加了一个Cube正方体,让他来作为游戏的边界.它是可以触发触发事件的(勾选Is Trigger),当 ...

  4. flask源码走读

    Flask-Origin 源码版本 一直想好好理一下flask的实现,这个项目有Flask 0.1版本源码并加了注解,挺清晰明了的,我在其基础上完成了对Werkzeug的理解部分,大家如果想深入学习的 ...

  5. python 终极篇 --- form组件 与 modelForm

                                                           form组件                                       ...

  6. 深入理解java虚拟机学习笔记(二)

    第三章 垃圾收集器与内存分配策略 概述 ​ 程序计数器.虚拟机栈.本地方法栈3个区随线程而生,随线程而灭.因此大体上可认为这几个区域的内存分配和回收都具备确定性.在方法/线程结束时,内存自然就跟着回收 ...

  7. JS验证验证服务器控件

    JS验证验证服务器控件 <script language="javascript" type="text/javascript"> /******* ...

  8. POJ 2653 Pick-up sticks(线段判交)

    Description Stan has n sticks of various length. He throws them one at a time on the floor in a rand ...

  9. 20145214 《Java程序设计》第2周学习总结

    20145214 <Java程序设计>第2周学习总结 教材学习内容总结 基本类型 整数:可分为short整数.int整数.long整数. 字节:即byte类型,可表示-128~127的整数 ...

  10. BluetoothAdapter解析

    这篇文章将会详细解析BluetoothAdapter的详细api, 包括隐藏方法, 每个常量含义. 一 BluetoothAdapter简介 1.继承关系 该类仅继承了Object类; 2.该类作用 ...