一、请求 Encoding myEncoding = Encoding.GetEncoding("utf-8"); string data = "username="; data += HttpUtility.UrlEncode("username", myEncoding); data += "&password="; data += HttpUtility.UrlEncode("password", myEncoding); string err; GetRemotPages grp = new GetRemotPages(); string re = grp.GetPageByPost("http://www.steelinfo.com.cn/comm_user/VerifyUniform.asp", data, out err); re = grp.GetPageByGet("http://www.steelinfo.com.cn/gangcai/news.asp?col=jiage&borough=1&columns=301&city_id=B01&id=300280", out err); Response.Write(re); 二、请求类 /// <summary> /// 如果多个请求(WebRequest)使用的是同是个CookieContainer,请求时可维持Session的,实现“登录-->获取”操作 /// </summary> public class GetRemotPages { //cookie属性 GetPageByPost()和GetPageByGet()方法共用 CookieContainer cc = new CookieContainer(); public string GetPageByPost(string url, string postData, out string err) { err = ""; Stream outstream = null; Stream instream = null; StreamReader sr = null; HttpWebResponse response = null; HttpWebRequest request = null; byte[] data = Encoding.ASCII.GetBytes(postData); // 准备请求... try { // 设置参数 request = WebRequest.Create(url) as HttpWebRequest; request.CookieContainer = cc; request.AllowAutoRedirect = true; request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = data.Length; outstream = request.GetRequestStream(); outstream.Write(data, 0, data.Length); outstream.Close(); //发送请求并获取相应回应数据 response = request.GetResponse() as HttpWebResponse; //直到request.GetResponse()程序才开始向目标网页发送Post请求 instream = response.GetResponseStream(); Encoding encoding = Encoding.GetEncoding("gb2312"); sr = new StreamReader(instream, encoding); //返回结果网页(html)代码 string content = sr.ReadToEnd(); err = string.Empty; return content; } catch (Exception ex) { err = ex.Message; return string.Empty; } } public string GetPageByGet(string url,out string err) { HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; request.CookieContainer = cc; request.Method="GET"; try { using (WebResponse wr = request.GetResponse()) { Stream instream = wr.GetResponseStream(); Encoding encoding = Encoding.GetEncoding("gb2312"); StreamReader sr = new StreamReader(instream, encoding); err = string.Empty; return sr.ReadToEnd(); } } catch (Exception ex) { err = ex.Message; return string.Empty; } } }