Ark组件简介
Ark组件是基于.NET 4.0框架开发的基础组件,封装了一些常用的功能方法,并提供了若干程序开发的基础框架。
HttpSession简介
HttpSession是Ark组件中负责HTTP通讯的帮助类,使用此类可以满足90%的HTTP请求模拟需求。
HttpSession功能一览
- 发起GET请求
- 发起POST请求
- 发起HEAD请求(不下载获取文件大小)
- 维持Session(登录状态)
- 模拟Ajax请求
- 设置访问来源
- 设置超时时间
- 模拟浏览器(设置User Agent、Accept等信息)
- 设置代理IP
- Cookie信息持久化
- 自动识别网页字符编码
- 支持以各种请求方式下载文件和读取响应流
- 超级简单的参数生成
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());
}