c#模拟表单POST数据,并获取跳转之后的页面
直接看代码:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Text; using System.Net; using System.IO; namespace FactoryCollect.common { public class HttpHelper { public static string Post(string url, string content, string encoding) { //获取提交的字节,这里的字符编码根据实际情况而定 byte[] bs = Encoding.GetEncoding("gb2312").GetBytes(content); //设置提交的相关参数 HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url); req.Method = "POST"; req.ContentType = "application/x-www-form-urlencoded"; req.ContentLength = bs.Length; req.KeepAlive = false; //提交请求数据 Stream reqStream = req.GetRequestStream(); reqStream.Write(bs, 0, bs.Length); reqStream.Close(); //接收返回的页面,必须的,不能省略 WebResponse wr = req.GetResponse(); //获取跳转页面的地址,然后再用(HttpWebRequest)HttpWebRequest.Create(url);重新请求 url = wr.ResponseUri.AbsoluteUri; req = (HttpWebRequest)HttpWebRequest.Create(url); req.Method = "GET"; //接收返回的页面,必须的,不能省略 wr = req.GetResponse(); System.IO.Stream respStream = wr.GetResponseStream(); System.IO.StreamReader reader = new System.IO.StreamReader(respStream, System.Text.Encoding.GetEncoding(encoding)); string t = reader.ReadToEnd(); wr.Close(); respStream.Close(); reader.Close(); return t; } } }