怎样通过HttpWebRequest 发送 POST 请求到一个网页服务器?例如编写个程序实现自动用户登录,自动提交表单数据到网站等。假如某个页面有个如下的表单(Form): <form name="form1" action="http://www.breakn.com/login.asp" method="post"><input type="text" name="userid" value=""><input type="password" name="password" value=""></form> 从表单可看到表单有两个表单域,一个是userid另一个是password,所以以POST形式提交的数据应该包含有这两项。其中POST的数据格式为:表单域名称1=值1&表单域名称2=值2&表单域名称3=值3……要注意的是“值”必须是经过HTMLEncode的,即不能包含“<>=&”这些符号。本例子要提交的数据应该是:userid=value1&password=value2用C#写提交程序:string strId = "guest";string strPassword= "123456";ASCIIEncoding encoding=new ASCIIEncoding();string postData="userid="+strId;postData += ("&password="+strPassword);byte[] data = encoding.GetBytes(postData);// Prepare web requestHttpWebRequest myRequest =(HttpWebRequest)WebRequest.Create("http://www.here.com/login.asp");myRequest.Method = "POST";myRequest.ContentType="application/x-www-form-urlencoded";myRequest.ContentLength = data.Length;Stream newStream=myRequest.GetRequestStream();// Send the data.newStream.Write(data,0,data.Length);newStream.Close();// Get responseHttpWebResponse myResponse=(HttpWebResponse)myRequest.GetResponse();StreamReader reader = new StreamReader(response.GetResponseStream(),Encoding.Default);string content = reader.ReadToEnd();Response.Write(content); 相关文章: