带Cookie的 WebClient
2024-10-13 03:41:22
/// <summary>
/// WebClient的扩展
/// </summary>
public class webClient : WebClient
{
/// <summary>是否重定向 默认为true</summary>
public bool AllowAutoRedirect { get; set; }
/// <summary>
///获取或设置 Referer HTTP 标头的值。默认值为 null。
/// </summary>
public string Referer { get; set; }
/// <summary>
/// 获取或设置 Content-type HTTP 标头的值。 默认: application/x-www-form-urlencoded
/// </summary>
public string ContentType { get; set; }
/// <summary>
/// 获取或设置 User-agent HTTP 标头的值。默认:Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)
/// </summary>
public string UserAgent { get; set; } /// <summary>
/// 获取或设置 GetResponse 和 GetRequestStream 方法的超时值(以毫秒为单位)。 默认值是 30,000 毫秒(30 秒)。
/// </summary>
public int Timeout { get; set; }
/// <summary>
/// 获取或设置写入或读取流时的超时(以毫秒为单位)。默认值为 300,000 毫秒(5 分钟)
/// </summary>
public int ReadWriteTimeout { get; set; } /// <summary>获取或设置请求相关联的Cookie</summary>
public CookieContainer CookieContainer { get; set; }
/// <summary>创建一个新的 WebClient 实例。</summary>
public webClient()
{
this.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)";
this.ContentType = "application/x-www-form-urlencoded";
this.CookieContainer = new CookieContainer();
this.AllowAutoRedirect = true;
this.Timeout = * ;
this.ReadWriteTimeout = * ;
}
protected override WebRequest GetWebRequest(Uri address)
{
HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(address);
if (this.Referer != null) request.Referer = this.Referer;
if (this.ContentType != null) request.ContentType = this.ContentType;
if (this.UserAgent != null) request.UserAgent = this.UserAgent;
request.AllowAutoRedirect = this.AllowAutoRedirect;
request.CookieContainer = this.CookieContainer; //这句很关键,有了他可以保存返回的Cookie
request.Timeout = this.Timeout;
request.ReadWriteTimeout = this.ReadWriteTimeout;
return request;
}
}
最新文章
- AngularJS中使用service,并同步数据
- AJAX.JSONP 跨域
- IntelliJ IDEA + Maven环境编写第一个hadoop程序
- 360 webscan中防注入跨站攻击的核心
- Servlet间的跳转
- CentOS 6.5安装MySQL中文乱码问题解决
- java中的浮点(float)运算
- RBL, UBL, Uboot的关系
- 格而知之9:一些关于GCD的笔记
- HTML5 canvas准备知识
- 【android开发】小说阅读器
- Score(规律)
- macOS平台下虚拟摄像头的研发总结
- 201521123003《Java程序设计》第13周学习总结
- ROS机器人程序设计(原书第2版)补充资料 (壹) 第一章 ROS系统入门
- Shell-cat url-list.txt | xargs wget -c
- Jmeter实现Basic Auth方式登录
- Ubuntu 14.04服务器配置 (1) 安装和配置
- linux中VI编写C程序。。。
- Atlas &; mysql-proxy