c#通过GET/POST获取页面的代码
/// <summary> /// 提供web处理方法的类 /// </summary> public class WebTreatment { /// <summary> /// 通过GET方式获取页面的方法 /// </summary> /// <param name="urlString">请求的URL</param> /// <param name="encoding">页面编码</param> /// <returns></returns> public static string GetHtmlFromGet(string urlString, Encoding encoding) { //定义局部变量 HttpWebRequest httpWebRequest = null; HttpWebResponse httpWebRespones = null; Stream stream = null; string htmlString = string.Empty; //请求页面 try { httpWebRequest = WebRequest.Create(urlString) as HttpWebRequest; } //处理异常 catch (Exception ex) { throw new Exception("建立页面请求时发生错误!", ex); } httpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; Maxthon 2.0)"; //获取服务器的返回信息 try { httpWebRespones = (HttpWebResponse)httpWebRequest.GetResponse(); stream = httpWebRespones.GetResponseStream(); } //处理异常 catch (Exception ex) { throw new Exception("接受服务器返回页面时发生错误!", ex); } StreamReader streamReader = new StreamReader(stream,encoding); //读取返回页面 try { htmlString = streamReader.ReadToEnd(); } //处理异常 catch (Exception ex) { throw new Exception("读取页面数据时发生错误!", ex); } //释放资源返回结果 streamReader.Close(); stream.Close(); return htmlString; } /// <summary> /// 提供通过POST方法获取页面的方法 /// </summary> /// <param name="urlString">请求的URL</param> /// <param name="encoding">页面使用的编码</param> /// <param name="postDataString">POST数据</param> /// <returns>获取的页面</returns> public static string GetHtmlFromPost(string urlString, Encoding encoding, string postDataString) { //定义局部变量 CookieContainer cookieContainer = new CookieContainer(); HttpWebRequest httpWebRequest = null; HttpWebResponse httpWebResponse = null; Stream inputStream = null; Stream outputStream = null; StreamReader streamReader = null; string htmlString = string.Empty; //转换POST数据 byte[] postDataByte = encoding.GetBytes(postDataString); //建立页面请求 try { httpWebRequest = WebRequest.Create(urlString) as HttpWebRequest; } //处理异常 catch (Exception ex) { throw new Exception("建立页面请求时发生错误!", ex); } //指定请求处理方式 httpWebRequest.Method = "POST"; httpWebRequest.KeepAlive = false; httpWebRequest.ContentType = "application/x-www-form-urlencoded"; httpWebRequest.CookieContainer = cookieContainer; httpWebRequest.ContentLength = postDataByte.Length; //向服务器传送数据 try { inputStream = httpWebRequest.GetRequestStream(); inputStream.Write(postDataByte, 0, postDataByte.Length); } //处理异常 catch (Exception ex) { throw new Exception("发送POST数据时发生错误!", ex); } finally { inputStream.Close(); } //接受服务器返回信息 try { httpWebResponse = httpWebRequest.GetResponse() as HttpWebResponse; outputStream = httpWebResponse.GetResponseStream(); streamReader = new StreamReader(outputStream, encoding); htmlString = streamReader.ReadToEnd(); } //处理异常 catch (Exception ex) { throw new Exception("接受服务器返回页面时发生错误!", ex); } finally { streamReader.Close(); } foreach (Cookie cookie in httpWebResponse.Cookies) { cookieContainer.Add(cookie); } return htmlString; } }
要走的路还很长,很长......
要学习的知识还有很多,很多......