Ark组件[转]
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());
}
Ark组件[转]的更多相关文章
- Ark组件设计随想(一)
Ark组件是L.Skyler自工作以来不断积累和优化的快速开发胶水架. Ark的目标是帮助开发人员简单快速的开始一个新的项目并且尽可能的复用已有功能.让项目开发不受一些基础组件开发影响. Ark定义了 ...
- 【ARK UI】HarmonyOS ETS如何创建PixeMap并显示Image组件上
参考资料 图片处理 Context模块 api讲解 image.createPixelMap createPixelMap(number: fd, options: InitializationOp ...
- 【ARK UI】HarmonyOS 从相册选择图片并显示到Image组件上
参考资料 [Harmony OS][ARK UI]ETS 上下文基本操作 [Harmony OS][ARK UI]ets使用startAbility或startAbilityForResult方式 ...
- 拒绝编译等待 - 动态研发模式 ARK
作者:字节跳动终端技术--徐纪光 背景 iOS 业界研发模式多为 CocoaPods + Xcode + Git 的多仓组件化开发模型.为追求极致的研发体验.提升研发效率,对该研发模式进行了大量优化, ...
- ExtJS 4.2 评分组件
上一文章是扩展ExtJS自带的Date组件.在这里将创建一个评分组件. 目录 1. 介绍 2. 示例 3. 资源下载 1. 介绍 代码参考的是 Sencha Touch 2上的一个RatingStar ...
- react组件的生命周期
写在前面: 阅读了多遍文章之后,自己总结了一个.一遍加强记忆,和日后回顾. 一.实例化(初始化) var Button = React.createClass({ getInitialState: f ...
- react-router 组件式配置与对象式配置小区别
1. react-router 对象式配置 和 组件式配置 组件式配置(Redirect) ----对应---- 对象式配置(onEnter钩子) IndexRedirect -----对应-- ...
- Angular2入门系列教程3-多个组件,主从关系
上一篇 Angular2项目初体验-编写自己的第一个组件 好了,前面简单介绍了Angular2的基本开发,并且写了一个非常简单的组件,这篇文章我们将要学会编写多个组件并且有主从关系 现在,假设我们要做 ...
- Angular2入门系列教程2-项目初体验-编写自己的第一个组件
上一篇 使用Angular-cli搭建Angular2开发环境 Angular2采用组件的编写模式,或者说,Angular2必须使用组件编写,没有组件,你甚至不能将Angular2项目启动起来 紧接着 ...
随机推荐
- CentOS 使用PostFix搭建邮件服务器
搭建环境: 关于PostFix是什么以及邮件服务器接受发送邮件流程网上有很多文章,这里就不再写了,这里只记录如何搭建邮件服务器,使用PostFix接受发送邮件 CentOS6.8 32位,postfi ...
- CentOS安装JMeter
mkdir /usr/local/jmeter 新建jmeter目录 cd /usr/local/jmeter 进入jmeter目录 wget https://archive.apache.org/d ...
- n! 阶乘
其实1.2.3.4.6.7…都是可以不用考虑的,因此选择以5为迭代步数即可. 首先,这些数字都可以不用进行%5(对5取余数)运算,因此每次循环时可以直接将函数的count变量直接加1.其次,考虑25. ...
- Tensorflow中使用tfrecord方式读取数据-深度学习-周振洋
本博客默认读者对神经网络与Tensorflow有一定了解,对其中的一些术语不再做具体解释.并且本博客主要以图片数据为例进行介绍,如有错误,敬请斧正. 使用Tensorflow训练神经网络时,我们可以用 ...
- Case 降序升序排列
select nc.Class_Name,hn.home_news_id,hn.hemo_id,hn.hemo_Date, hn.hemo_title,hemo_order from Hemo_New ...
- 4.安装hive
下载安装包并解压安装元数据库配置hive添加hvie环境变量修改hive-env.sh修改hive配置文件初始化metastore使用hive cli配置hivemestore配置hiveserv ...
- POJ 1228 Grandpa's Estate(凸包唯一性判断)
Description Being the only living descendant of his grandfather, Kamran the Believer inherited all o ...
- /etc/fstab 文件如何填写(转)
转载自 http://hi.baidu.com/jingzhongchen/blog/item/8e6f552dcead7ce98b139952.html 看你对/etc/fstab文件了解多少? ...
- Sum of Consecutive Prime Numbers(素数打表+尺取)
Description Some positive integers can be represented by a sum of one or more consecutive prime numb ...
- 用纯css改变下拉列表select框的默认样式(转)
用纯css改变下拉列表select框的默认样式 分享到 分类 JS学习 关键字 前端 发布 kris 2015-04-01 注意 转载须保留原文链接,译文链接,作者译者等信息. 在这 ...