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. 「题目代码」P1044~P1048(Java)

    P1044 谭浩强C语言(第三版)习题5.8 import java.util.*; import java.io.*; import java.math.BigInteger; public cla ...

  2. 【isJson( jsonObj )】判断是否是JSON实例

    判断是否是JSON实例: 原型:isJson( jsonObj ) 说明:判断对象是否是JSON实例 返回:[true | false] 示例: <% Set jsonObj1 = toJson ...

  3. python SyntaxError: Non-ASCII character '\xe8' in file C:\Users\nwpujun\PycharmProjects\projects\hrl1\hrlAgent\src\li_nn.py on line 52

    解决方法:在文件头部加上这样的一句话 # -*- coding: utf-8 -*- 注意:加在其他的位置可能没用,我就是这样的

  4. 关闭Tomcat进程 一条语句(必看)

    写在开始 MAC系统下进行JAVA研发,经常遇到的一个问题就是杀死异常Tomcat 通常都是用两条指令,先查询出Tomcat占用的进程,再kill掉该进程, 其实有一种联合语句的方式可以一条语句直接关 ...

  5. qt qchart缩放后坐标轴间隔取整

    使用qt的qchart显示数据曲线,坐标轴QValueAxis可以设置刻度间隔数量,但每个刻度的数值是根据坐标的极值除以间隔数量得到的,不一定是整数,导致曲线控件的显示刻度不适合观察. 如图: 纵坐标 ...

  6. [C++] OOP - Base and Derived Classes

    There is a base class at the root of the hierarchy, from which the other class inherit, directly or ...

  7. HDU 2491 Priest John's Busiest Day(贪心)(2008 Asia Regional Beijing)

    Description John is the only priest in his town. October 26th is the John's busiest day in a year be ...

  8. js经典试题之闭包

    js经典试题之闭包 1:以下代码输出的结果是? function Foo(){ var i=0; return function(){ document.write(i++); } } var f1= ...

  9. 关于LNMP常见问题和性能方面的个人理解

    简单整理,自己做备忘的,不为其他作任何参考- PHP程序 1.开启慢日志,过滤超时时间为1s的方法,针对性优化,可以通过添加缓存方式解决. 2.过滤access日志,统计哪些请求较多较为频繁,是否合理 ...

  10. OSG学习:自动对齐节点示例

    /********************************************************** *Write by FlySky *zzuxp@163.com http://w ...