old_flsystem/类库/HttpHelper2.1/HttpItem.cs

597 lines
9.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using CsharpHttpHelper.Enum;
using System;
using System.Net;
using System.Security.Cryptography.X509Certificates;
using System.Text;
namespace CsharpHttpHelper
{
/// <summary>
/// Http请求参考类 Copyrighthttp://www.httphelper.com/
/// </summary>
public class HttpItem
{
private string _Method = "GET";
private int _Timeout = 100000;
private int _ReadWriteTimeout = 30000;
private bool _KeepAlive = true;
private string _Accept = "text/html, application/xhtml+xml, */*";
private string _ContentType = "text/html";
private string _UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)";
private bool _expect100continue = false;
private DateTime? _IfModifiedSince = null;
private bool _isGzip = false;
private DecompressionMethods _AutomaticDecompression = DecompressionMethods.None;
private PostDataType _PostDataType = PostDataType.String;
private bool _AutoRedirectCookie = false;
private ResultCookieType _ResultCookieType = ResultCookieType.String;
private bool _isUpdateCookie = false;
private CookieContainer _CookieContainer = new CookieContainer();
private ICredentials _ICredentials = CredentialCache.DefaultCredentials;
private bool isToLower = false;
private bool allowautoredirect = false;
private int connectionlimit = 1024;
private ResultType resulttype = ResultType.String;
private WebHeaderCollection header = new WebHeaderCollection();
private IPEndPoint _IPEndPoint = null;
private bool _isReset = false;
/// <summary>
/// 请求URL必须填写
/// </summary>
public string URL
{
get;
set;
}
/// <summary>
/// 请求方式默认为GET方式,当为POST方式时必须设置Postdata的值
/// </summary>
public string Method
{
get
{
return _Method;
}
set
{
_Method = value;
}
}
/// <summary>
/// 默认请求超时时间
/// </summary>
public int Timeout
{
get
{
return _Timeout;
}
set
{
_Timeout = value;
}
}
/// <summary>
/// 默认写入和读取Post数据超时间
/// </summary>
public int ReadWriteTimeout
{
get
{
return _ReadWriteTimeout;
}
set
{
_ReadWriteTimeout = value;
}
}
/// <summary>
/// 设置Host的标头信息
/// </summary>
public string Host
{
get;
set;
}
/// <summary>
/// 获取或设置一个值,该值指示是否与 Internet 资源建立持久性连接默认为true。
/// </summary>
public bool KeepAlive
{
get
{
return _KeepAlive;
}
set
{
_KeepAlive = value;
}
}
/// <summary>
/// 请求标头值 默认为text/html, application/xhtml+xml, */*
/// </summary>
public string Accept
{
get
{
return _Accept;
}
set
{
_Accept = value;
}
}
/// <summary>
/// 请求返回类型默认 text/html
/// </summary>
public string ContentType
{
get
{
return _ContentType;
}
set
{
_ContentType = value;
}
}
/// <summary>
/// 客户端访问信息默认Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
/// </summary>
public string UserAgent
{
get
{
return _UserAgent;
}
set
{
_UserAgent = value;
}
}
/// <summary>
/// 来源地址,上次访问地址
/// </summary>
public string Referer
{
get;
set;
}
/// <summary>
/// 获取或设置用于请求的 HTTP 版本。返回结果:用于请求的 HTTP 版本。默认为 System.Net.HttpVersion.Version11。
/// </summary>
public Version ProtocolVersion
{
get;
set;
}
/// <summary>
/// 获取或设置一个 System.Boolean 值,该值确定是否使用 100-Continue 行为。如果 POST 请求需要 100-Continue 响应,则为 true否则为 false。默认值为 true。
/// </summary>
public bool Expect100Continue
{
get
{
return _expect100continue;
}
set
{
_expect100continue = value;
}
}
/// <summary>
/// 设置请求将跟随的重定向的最大数目
/// </summary>
public int MaximumAutomaticRedirections
{
get;
set;
}
/// <summary>
/// 获取和设置IfModifiedSince默认为当前日期和时间
/// </summary>
public DateTime? IfModifiedSince
{
get
{
return _IfModifiedSince;
}
set
{
_IfModifiedSince = value;
}
}
/// <summary>
/// 是否执行Gzip解压 默认为否
/// </summary>
public bool IsGzip
{
get
{
return _isGzip;
}
set
{
_isGzip = value;
}
}
/// <summary>
/// 返回数据编码默认为NUll,可以自动识别,一般为utf-8,gbk,gb2312
/// </summary>
public Encoding Encoding
{
get;
set;
}
/// <summary>
/// 设置或获取Post参数编码,默认的为Default编码
/// </summary>
public Encoding PostEncoding
{
get;
set;
}
/// <summary>
///
/// </summary>
public DecompressionMethods AutomaticDecompression
{
get
{
return _AutomaticDecompression;
}
set
{
_AutomaticDecompression = value;
}
}
/// <summary>
/// Post的数据类型
/// </summary>
public PostDataType PostDataType
{
get
{
return _PostDataType;
}
set
{
_PostDataType = value;
}
}
/// <summary>
/// Post请求时要发送的字符串Post数据
/// </summary>
public string Postdata
{
get;
set;
}
/// <summary>
/// Post请求时要发送的Byte类型的Post数据
/// </summary>
public byte[] PostdataByte
{
get;
set;
}
/// <summary>
/// Cookie对象集合
/// </summary>
public CookieCollection CookieCollection
{
get;
set;
}
/// <summary>
/// 请求时的Cookie
/// </summary>
public string Cookie
{
get;
set;
}
/// <summary>
/// 请求时当设置allowautoredirect=true时是否自动处理Cookie
/// </summary>
public bool AutoRedirectCookie
{
get
{
return _AutoRedirectCookie;
}
set
{
_AutoRedirectCookie = value;
}
}
/// <summary>
/// Cookie返回类型,默认的是只返回字符串类型
/// </summary>
public ResultCookieType ResultCookieType
{
get
{
return _ResultCookieType;
}
set
{
_ResultCookieType = value;
}
}
/// <summary>
/// 是否自动将Cookie自动更新为请求所获取的新Cookie值 默认为False
/// </summary>
public bool IsUpdateCookie
{
get
{
return _isUpdateCookie;
}
set
{
_isUpdateCookie = value;
}
}
/// <summary>
/// Cookie对象的集合容器 模式Cookie可容纳N个CookieCollection对象
/// </summary>
public CookieContainer CookieContainer
{
get
{
return _CookieContainer;
}
set
{
_CookieContainer = value;
}
}
/// <summary>
/// 证书绝对路径
/// </summary>
public string CerPath
{
get;
set;
}
/// <summary>
/// 证书密码
/// </summary>
public string CerPwd
{
get;
set;
}
/// <summary>
/// 设置509证书集合
/// </summary>
public X509CertificateCollection ClentCertificates
{
get;
set;
}
/// <summary>
/// 获取或设置请求的身份验证信息。
/// </summary>
public ICredentials ICredentials
{
get
{
return _ICredentials;
}
set
{
_ICredentials = value;
}
}
/// <summary>
/// 是否设置为全文小写,默认为不转化
/// </summary>
public bool IsToLower
{
get
{
return isToLower;
}
set
{
isToLower = value;
}
}
/// <summary>
/// 支持跳转页面,查询结果将是跳转后的页面,默认是不跳转
/// </summary>
public bool Allowautoredirect
{
get
{
return allowautoredirect;
}
set
{
allowautoredirect = value;
}
}
/// <summary>
/// 最大连接数
/// </summary>
public int Connectionlimit
{
get
{
return connectionlimit;
}
set
{
connectionlimit = value;
}
}
/// <summary>
/// 设置代理对象不想使用IE默认配置就设置为Null而且不要设置ProxyIp
/// </summary>
public WebProxy WebProxy
{
get;
set;
}
/// <summary>
/// 代理Proxy 服务器用户名
/// </summary>
public string ProxyUserName
{
get;
set;
}
/// <summary>
/// 代理 服务器密码
/// </summary>
public string ProxyPwd
{
get;
set;
}
/// <summary>
/// 代理 服务IP,如果要使用IE代理就设置为ieproxy
/// </summary>
public string ProxyIp
{
get;
set;
}
/// <summary>
/// 设置返回类型String和Byte
/// </summary>
public ResultType ResultType
{
get
{
return resulttype;
}
set
{
resulttype = value;
}
}
/// <summary>
/// header对象
/// </summary>
public WebHeaderCollection Header
{
get
{
return header;
}
set
{
header = value;
}
}
/// <summary>
/// 设置本地的出口ip和端口
/// </summary>]
/// <example>
/// item.IPEndPoint = new IPEndPoint(IPAddress.Parse("192.168.1.1"),80);
/// </example>
public IPEndPoint IPEndPoint
{
get
{
return _IPEndPoint;
}
set
{
_IPEndPoint = value;
}
}
/// <summary>
/// 当出现“请求被中止: 未能创建 SSL/TLS 安全通道”时需要配置此属性
/// </summary>
public SecurityProtocolType SecurityProtocol
{
get;
set;
}
/// <summary>
/// 是否重置request,response的值默认不重置当设置为True时request,response将被设置为Null
/// </summary>
public bool IsReset
{
get
{
return _isReset;
}
set
{
_isReset = value;
}
}
}
}