您的位置:首页 > 理论基础 > 计算机网络

C#模拟http 发送post请求 模拟登录

2016-04-22 09:29 639 查看
string postData =string.Format( "__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=/wEPDwULLTE1MzYzODg2NzZkGAEFHl9fQ29udHJvbHNSZXF1aXJlUG9zdEJhY2tLZXlfXxYBBQtjaGtSZW1lbWJlcm1QYDyKKI9af4b67Mzq2xFaL9Bt&__EVENTVALIDATION=/wEWBQLWwpqPDQLyj/OQAgK3jsrkBALR55GJDgKC3IeGDE1m7t2mGlasoP1Hd9hLaFoI2G05&tbUserName={0}&tbPassword={1}&btnLogin=登
录&txtReturnUrl=http://home.cnblogs.com/",txtName.Text.Trim(),txtPwd.Text.Trim());

 //这是cnblogs提交时的一些参数

ASCIIEncoding encoding = new ASCIIEncoding();

 byte[] data = encoding.GetBytes(postData);

 HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://passport.cnblogs.com/login.aspx");

 request.Method = "Post";

 request.ContentType = "application/x-www-form-urlencoded";

 request.ContentLength = data.Length;

 request.KeepAlive = true;

 request.CookieContainer = container; //返回的cookie会附加在这个容器里面

//发送数据

Stream newStream = request.GetRequestStream();

 newStream.Write(data, 0, data.Length);

 HttpWebResponse response = (HttpWebResponse)request.GetResponse();

 newStream = response.GetResponseStream();

 StreamReader reader = new StreamReader(newStream, Encoding.UTF8);

 string text = reader.ReadToEnd();

 reader.Close();

 newStream.Close();

/////////////////////////////////////////////////////////////

private string HttpPost(string Url, string postDataStr)

{

 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);

 request.Method = "POST";

 request.ContentType = "application/x-www-form-urlencoded";

 request.ContentLength = Encoding.UTF8.GetByteCount(postDataStr);

 request.CookieContainer = cookie;

 Stream myRequestStream = request.GetRequestStream();

 StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312"));

 myStreamWriter.Write(postDataStr);

 myStreamWriter.Close();

 HttpWebResponse response = (HttpWebResponse)request.GetResponse();

 response.Cookies = cookie.GetCookies(response.ResponseUri);

 Stream myResponseStream = response.GetResponseStream();

 StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));

 string retString = myStreamReader.ReadToEnd();

 myStreamReader.Close();

 myResponseStream.Close();

 return retString;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: