• 带Cookie的 WebClient


        /// <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 = 30 * 1000;
                this.ReadWriteTimeout = 300 * 1000;
            }
            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;
            }
        }
  • 相关阅读:
    FZU 1759 欧拉函数 降幂公式
    51nod 1126 矩阵快速幂 水
    Codeforces Round #325 (Div. 2) D bfs
    Codeforces Round #379 (Div. 2) A B C D 水 二分 模拟
    Codeforces Round #284 (Div. 2)A B C 模拟 数学
    CentOS 7 rsync
    子进程 已安装 pre-removal 脚本 返回了错误号 1或2 与 子进程 已安装 post-installation 脚本 返回了错误号 1或2
    VirtualBox
    Eclipse 安装 HDFS 插件
    docker log 文件 清理
  • 原文地址:https://www.cnblogs.com/chengulv/p/4436443.html
Copyright © 2020-2023  润新知