怎样通过HttpWebRequest 发送 POST 请求到一个网页服务器?例如编写个程序实现自动用户登录,自动提交表单数据到网站等。
假如某个页面有个如下的表单(Form):
<form name="form1" action="http://www.here.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 request...
  HttpWebRequest 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 response
  HttpWebResponse myResponse=(HttpWebResponse)myRequest.GetResponse();
  StreamReader reader = new StreamReader(response.GetResponseStream(),Encoding.Default);
  string content = reader.ReadToEnd();
  Console.WriteLine(content); 

解决方案 »

  1.   

    顺便请教另外一个问题哈 
    我想通过listview来显示相关的信息,但是每行信息里面有一些关键词想通过特别的颜色来突出, 感谢!
      

  2.   

                        Process.Start("IEXPLORE.EXE", "http://192.168.1.1/Web/MemberLogin.aspx?userID=")
      

  3.   

      <asp:TemplateField HeaderText="帐户状态"> 
                            <ItemTemplate>
                            <a href="UserList.aspx?flag=<%# DataBinder.Eval(Container.DataItem, "UserID")%>"><%# Boolean.Parse((DataBinder.Eval(Container.DataItem, "IsForbid").ToString())) == false ? "<font color='blue'>正常</font>" : "<font color='Red'>禁用</font>"%></a>
                            </ItemTemplate> 
                                 <HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />
                            </asp:TemplateField>
      

  4.   

    还可以在select 语句中使用case..when..then