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项目启动起来 紧接着 ...
随机推荐
- 结合BeautifulSoup和hackhttp的爬虫实例
网页页数的改变 headers头不添加
- hello-jni Android.mk文件简析
#删除旧变量 LOCAL_PATH := $(call my-dir) #返回当前目录 include $(CLEAR_VARS) #删除旧变量 #设置新变量 LOCAL_MODULE := hell ...
- LabVIEW初篇---前言
最早接触labview,是研二的时候,2007年,当时为了补贴家用,改善生活.自己拿着本科毕业证去找工作,去一个企业面试,当时,面试的主考官,问了会什么吗,比如PLC.单片机啥的?那时候的自己,基本上 ...
- C 计算数字的位数循环
#include <stdio.h> int main(int argc, char **argv) { // int x; int n=0; scanf("%d",& ...
- 【WXS全局对象】Date
属性: 名称 说明 Date.parse( [dateString] ) 解析一个日期时间字符串,并返回 1970/1/1 午夜距离该日期时间的毫秒数. Date.UTC(year,month,day ...
- 《Git学习指南》学习笔记(二)
第三章 提交究竟是什么 每次提交都会生成一个40位的散列值.只要知道散列值,我们就可以恢复到该次提交,这个操作也被称之为检出(checkout)操作. 访问权限与时间戳 Git会保存每个文件原有的访问 ...
- CPU设计学习-流水线
各种名词 标量流水线 超级流水线 超标量流水线与多发射技术 经典五级流水线 IF |Instruction Fetch,取指 ID |Instruction Decode,译码 EX |Execute ...
- 关于C#中如何使用wmi获得操作系统信息?
最近项目中用到了windows server 2012操作系统中的存储池和ISCSI Disk的技术.前期,我们整个操作都是用power shell脚本去实现了.带来了不方便,后期要使用wmi API ...
- LeetCode - 389. Find the Difference - 三种不同解法 - ( C++ ) - 解题报告
1.题目大意 Given two strings s and t which consist of only lowercase letters. String t is generated by r ...
- solidity 十六进制字符串转十六进制bytes
pragma solidity ^0.4.16; contract Metadata { // 十六进制字符串转换成bytes function hexStr2bytes(string data)re ...