C# HttpWebRequest 通用类2

    using System;  
    using System.Collections.Generic;  
    using System.IO;  
    using System.Net;  
    using System.Text;  
      
    namespace HttpWeb  
    {  
        /// <summary>   
        ///  Http操作类   
        /// </summary>   
        public static class httptest  
        {  
            /// <summary>   
            ///  获取网址HTML   
            /// </summary>   
            /// <param name="URL">网址 </param>   
            /// <returns> </returns>   
            public static string GetHtml(string URL)  
            {  
                WebRequest wrt;  
                wrt = WebRequest.Create(URL);  
                wrt.Credentials = CredentialCache.DefaultCredentials;  
                WebResponse wrp;  
                wrp = wrt.GetResponse();  
                string reader = new StreamReader(wrp.GetResponseStream(), Encoding.GetEncoding("gb2312")).ReadToEnd();  
                try  
                {  
                    wrt.GetResponse().Close();  
                }  
                catch (WebException ex)  
                {  
                    throw ex;  
                }  
                return reader;  
            }  
            /// <summary>   
            /// 获取网站cookie   
            /// </summary>   
            /// <param name="URL">网址 </param>   
            /// <param name="cookie">cookie </param>   
            /// <returns> </returns>   
            public static string GetHtml(string URL, out string cookie)  
            {  
                WebRequest wrt;  
                wrt = WebRequest.Create(URL);  
                wrt.Credentials = CredentialCache.DefaultCredentials;  
                WebResponse wrp;  
      
                wrp = wrt.GetResponse();  
      
                string html = new StreamReader(wrp.GetResponseStream(), Encoding.GetEncoding("gb2312")).ReadToEnd();  
      
                try  
                {  
                    wrt.GetResponse().Close();  
                }  
                catch (WebException ex)  
                {  
                    throw ex;  
                }  
      
                cookie = wrp.Headers.Get("Set-Cookie");  
                return html;  
            }  
            public static string GetHtml(string URL, string postData, string cookie, out string header, string server)  
            {  
                return GetHtml(server, URL, postData, cookie, out header);  
            }  
            public static string GetHtml(string server, string URL, string postData, string cookie, out string header)  
            {  
                byte[] byteRequest = Encoding.GetEncoding("gb2312").GetBytes(postData);  
                return GetHtml(server, URL, byteRequest, cookie, out header);  
            }  
            public static string GetHtml(string server, string URL, byte[] byteRequest, string cookie, out string header)  
            {  
                byte[] bytes = GetHtmlByBytes(server, URL, byteRequest, cookie, out header);  
                Stream getStream = new MemoryStream(bytes);  
                StreamReader streamReader = new StreamReader(getStream, Encoding.GetEncoding("gb2312"));  
                string getString = streamReader.ReadToEnd();  
                streamReader.Close();  
                getStream.Close();  
                return getString;  
            }  
      
            /// <summary>   
            /// Post模式浏览   
            /// </summary>   
            /// <param name="server">服务器地址 </param>   
            /// <param name="URL">网址 </param>   
            /// <param name="byteRequest">流 </param>   
            /// <param name="cookie">cookie </param>   
            /// <param name="header">句柄 </param>   
            /// <returns> </returns>   
            public static byte[] GetHtmlByBytes(string server, string URL, byte[] byteRequest, string cookie, out string header)  
            {  
                long contentLength;  
                HttpWebRequest httpWebRequest;  
                HttpWebResponse webResponse;  
                Stream getStream;  
      
                httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(URL);  
                CookieContainer co = new CookieContainer();  
                co.SetCookies(new Uri(server), cookie);  
      
                httpWebRequest.CookieContainer = co;  
      
                httpWebRequest.ContentType = "application/x-www-form-urlencoded";  
                httpWebRequest.Accept =  
                    "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*";  
                httpWebRequest.Referer = server;  
                httpWebRequest.UserAgent =  
                    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)";  
                httpWebRequest.Method = "Post";  
                httpWebRequest.ContentLength = byteRequest.Length;  
                Stream stream;  
                stream = httpWebRequest.GetRequestStream();  
                stream.Write(byteRequest, 0, byteRequest.Length);  
                stream.Close();  
                webResponse = (HttpWebResponse)httpWebRequest.GetResponse();  
                header = webResponse.Headers.ToString();  
                getStream = webResponse.GetResponseStream();  
                contentLength = webResponse.ContentLength;  
      
                byte[] outBytes = new byte[contentLength];  
                outBytes = ReadFully(getStream);  
                getStream.Close();  
                return outBytes;  
            }  
            public static byte[] ReadFully(Stream stream)  
            {  
                byte[] buffer = new byte[128];  
                using (MemoryStream ms = new MemoryStream())  
                {  
                    while (true)  
                    {  
                        int read = stream.Read(buffer, 0, buffer.Length);  
                        if (read <= 0)  
                            return ms.ToArray();  
                        ms.Write(buffer, 0, read);  
                    }  
                }  
            }  
      
            /// <summary>   
            /// Get模式   
            /// </summary>   
            /// <param name="URL">网址 </param>   
            /// <param name="cookie">cookies </param>   
            /// <param name="header">句柄 </param>   
            /// <param name="server">服务器 </param>   
            /// <param name="val">服务器 </param>   
            /// <returns> </returns>   
            public static string GetHtml(string URL, string cookie, out string header, string server)  
            {  
                return GetHtml(URL, cookie, out header, server, "");  
            }  
            /// <summary>   
            /// Get模式浏览   
            /// </summary>   
            /// <param name="URL">Get网址 </param>   
            /// <param name="cookie">cookie </param>   
            /// <param name="header">句柄 </param>   
            /// <param name="server">服务器地址 </param>   
            /// <param name="val"> </param>   
            /// <returns> </returns>   
            public static string GetHtml(string URL, string cookie, out string header, string server, string val)  
            {  
                HttpWebRequest httpWebRequest;  
                HttpWebResponse webResponse;  
                Stream getStream;  
                StreamReader streamReader;  
                string getString = "";  
                httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(URL);  
                httpWebRequest.Accept = "*/*";  
                httpWebRequest.Referer = server;  
                CookieContainer co = new CookieContainer();  
                co.SetCookies(new Uri(server), cookie);  
                httpWebRequest.CookieContainer = co;  
                httpWebRequest.UserAgent =  
                    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)";  
                httpWebRequest.Method = "GET";  
                webResponse = (HttpWebResponse)httpWebRequest.GetResponse();  
                header = webResponse.Headers.ToString();  
                getStream = webResponse.GetResponseStream();  
                streamReader = new StreamReader(getStream, Encoding.GetEncoding("gb2312"));  
                getString = streamReader.ReadToEnd();  
      
                streamReader.Close();  
                getStream.Close();  
                return getString;  
            }  
            /// <summary>   
            /// 返回验证码图片流   
            /// </summary>   
            /// <param name="server">服务器地址 </param>   
            /// <param name="URL">验证码网址 </param>   
            /// <param name="cookie">cookie </param>   
            /// <returns> </returns>   
            public static Stream GetStreamByBytes(string server, string URL, string cookie)  
            {  
                Stream stream = GetCode(server, URL, cookie);  
                return stream;  
            }  
      
            /// <summary>   
            /// //获取验证码   
            /// </summary>   
            /// <param name="server">服务器地址 </param>   
            /// <param name="url">验证码网址 </param>   
            /// <param name="cookie">cookie </param>   
            /// <returns> </returns>   
            public static Stream GetCode(string server, string url, string cookie)  
            {  
      
                HttpWebRequest httpWebRequest;  
      
                httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);  
                CookieContainer co = new CookieContainer();  
                co.SetCookies(new Uri(server), cookie);  
                httpWebRequest.CookieContainer = co;  
      
                HttpWebResponse response = (HttpWebResponse)httpWebRequest.GetResponse();  
                Stream stream = response.GetResponseStream();  
                return stream;  
      
            }  
            /// <summary>   
            /// 获取html   
            /// </summary>   
            /// <param name="server"> </param>   
            /// <param name="url"> </param>   
            /// <param name="cookie"> </param>   
            /// <returns> </returns>   
      
            public static string GetUser(string server, string url, string cookie)  
            {  
                string getString = "";  
                try  
                {  
                    HttpWebRequest httpWebRequest;  
                    StreamReader streamReader;  
      
                    httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);  
                    CookieContainer co = new CookieContainer();  
                    co.SetCookies(new Uri(server), cookie);  
                    httpWebRequest.CookieContainer = co;  
      
                    HttpWebResponse response = (HttpWebResponse)httpWebRequest.GetResponse();  
      
                    Stream stream = response.GetResponseStream();  
      
                    streamReader = new StreamReader(stream, Encoding.GetEncoding("gb2312"));  
                    getString = streamReader.ReadToEnd();  
      
                    try  
                    {  
                        httpWebRequest.GetResponse().Close();  
                    }  
                    catch (WebException ex)  
                    {  
                        throw ex;  
                    }  
                    streamReader.Close();  
                    stream.Close();  
      
                }  
                catch  
                {  
                }  
                return getString;  
      
            }  
      
        }  
      
    }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值