利用WebRequest来实现模拟浏览器通过Post方式向服务器提交数据
点击次数:26 次 发布日期:2008-11-26 14:23:29 作者:源代码网
|
源代码网推荐 string payload="chkbook=book&keyword=管理"; 源代码网推荐 WebRequest req = WebRequest.Create("http://localhost/pceo/Search.aspx"); 源代码网推荐 req.Method = "POST"; 源代码网推荐 req.ContentType = "application/x-www-form-urlencoded"; 源代码网推荐 StringBuilder UrlEncoded = new StringBuilder(); 源代码网推荐 Char[] reserved = {"?", "=", "&"}; 源代码网推荐 byte[] SomeBytes = null; 源代码网推荐 if (payload != null) 源代码网推荐 { 源代码网推荐 int i=0, j; 源代码网推荐 while(i<payload.Length) 源代码网推荐 { 源代码网推荐 j=payload.IndexOfAny(reserved, i); 源代码网推荐 if (j==-1) 源代码网推荐 { 源代码网推荐 UrlEncoded.Append(HttpUtility.UrlEncode(payload.Substring(i, payload.Length-i),System.Text .Encoding .GetEncoding ("gb2312"))); 源代码网推荐 break; 源代码网推荐 } 源代码网推荐 UrlEncoded.Append(HttpUtility.UrlEncode(payload.Substring(i, j-i),System.Text .Encoding .GetEncoding ("gb2312"))); 源代码网推荐 UrlEncoded.Append(payload.Substring(j,1)); 源代码网推荐 i = j+1; 源代码网推荐 } 源代码网推荐 SomeBytes = Encoding.Default.GetBytes(UrlEncoded.ToString()); 源代码网推荐 req.ContentLength = SomeBytes.Length; 源代码网推荐 Stream newStream = req.GetRequestStream(); 源代码网推荐 newStream.Write(SomeBytes, 0, SomeBytes.Length); 源代码网推荐 newStream.Close(); 源代码网推荐 } 源代码网推荐 else 源代码网推荐 { 源代码网推荐 req.ContentLength = 0; 源代码网推荐 } 源代码网推荐 try 源代码网推荐 { 源代码网推荐 WebResponse result = req.GetResponse(); 源代码网推荐 Stream ReceiveStream = result.GetResponseStream(); 源代码网推荐 源代码网推荐 Byte[] read = new Byte[512]; 源代码网推荐 int bytes = ReceiveStream.Read(read, 0, 512); 源代码网推荐 源代码网推荐 txtHTML.InnerHtml = ""; 源代码网推荐 while (bytes > 0) 源代码网推荐 { 源代码网推荐 源代码网推荐 // 注意: 源代码网推荐 // 下面假定响应使用 UTF-8 作为编码方式。 源代码网推荐 // 如果内容以 ANSI 代码页形式(例如,932)发送,则使用类似下面的语句: 源代码网推荐 // Encoding encode = System.Text.Encoding.GetEncoding("shift-jis"); 源代码网推荐 Encoding encode = System.Text.Encoding.GetEncoding("gb2312"); 源代码网推荐 txtHTML.InnerHtml = txtHTML.InnerHtml + encode.GetString(read, 0, bytes); 源代码网推荐 bytes = ReceiveStream.Read(read, 0, 512); 源代码网推荐 } 源代码网推荐 } 源代码网推荐 catch(Exception) 源代码网推荐 { 源代码网推荐 txtHTML.InnerHtml = "检索页时出错"; 源代码网推荐 } 源代码网推荐 源代码网推荐 出处:狂风之家 BLOG 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。 源代码网推荐 源代码网供稿. |
