基本信息
源码名称:C# 模拟请求HttpWebRequest 类源码
源码大小:0.01M
文件格式:.cs
开发语言:C#
更新时间:2014-10-28
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍
模拟请求,基于HttpWebRequest封装好的一个类,自动记下和发送Cookie,你只管调用方法就行了,很实用

        ///<summary>
        /// 使用post方式访问目标网页,返回stream二进制流
        ///</summary>
        public Stream PostAndGetStream(string targetURL, string formData, string contentType, string referer, bool allowAutoRedirect)
        {
            try
            {
                //数据编码
                ASCIIEncoding encoding = new ASCIIEncoding();
                byte[] data = encoding.GetBytes(formData);


                //请求目标网页
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(targetURL);
                request.CookieContainer = cc;
                request.Method = "POST";    //使用post方式发送数据
                request.ContentType = contentType;
                request.Referer = referer;
                request.AllowAutoRedirect = allowAutoRedirect;
                request.ContentLength = data.Length;
                request.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; EmbeddedWB 14.52 from: http://www.bsalsa.com/ EmbeddedWB 14.52; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)";

                //模拟一个UserAgent
                Stream newStream = request.GetRequestStream();
                newStream.Write(data, 0, data.Length);
                newStream.Close();

                //获取网页响应结果
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                cc.Add(response.Cookies);
                responseUrl = response.ResponseUri.ToString();
                setCookie = response.Headers.Get("Set-Cookie");
                Stream stream = response.GetResponseStream();
                return stream;
            }
            catch (Exception ex)
            {
                string methodMsg = string.Format("HttpHelper/HttpHelper/public Stream PostAndGetStream({0}, {1}, {2}, {3}, {4})", targetURL, formData, contentType, referer, allowAutoRedirect);
                Common.WriteLog(string.Empty, ex.Message, methodMsg);
                return null;
            }
        }