模拟提交数据,获取结果

时间:2022-06-16 00:57:53
 

发现这个很好,缺点就是没有成功案例,测试成功发个案例上来,呵呵。

模拟Post/get提交数据 并抓取返回数据

最近需要做的项目中,使用httpwebrequest httpwebrespone来模拟提交数据

还有模拟用户登录后提交数据。

下面做个简单一点的。模拟post提交数据,get在前面的抓取sina的天气预报也使用到了。

下面是代码

  1. //提交的post数据   
  2.             string postData = string.Format("account={0}&reaccount={0}&cardcode={1}&cardpassword={2}",txtLoginId.Text,txtCardNo.Text,txtPass.Text);  
  3.             postData += string.Format("&__EVENTTARGET={0}&__EVENTARGUMENT=&__VIEWSTATE={1}""nextStep""YToxOntzOjExOiJjdXJyZW50VXNlciI7YjowO30=");  
  4.             HttpWebResponse response;  
  5.             HttpWebRequest request;  
  6.             ASCIIEncoding encoding = new ASCIIEncoding();  
  7.             byte[] data = encoding.GetBytes(postData);  
  8.             request = (HttpWebRequest)WebRequest.Create("url");  
  9.             data = encoding.GetBytes(postData);  
  10.             request.Method = "POST";  
  11.             request.ProtocolVersion = HttpVersion.Version10;  
  12.             request.UserAgent = "Mozilla/4.0";  
  13.   
  14.             request.ContentType = "application/x-www-form-urlencoded";  
  15.             request.ContentLength = data.Length;  
  16.             Stream stream = request.GetRequestStream();  
  17.             stream.Write(data, 0, data.Length);  
  18.             stream.Close();  
  19.             string html = string.Empty;  
  20.             try  
  21.             {  
  22.                 //获取服务器返回的资源   
  23.                 response = (HttpWebResponse)request.GetResponse();  
  24.                 StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);  
  25.                 html = reader.ReadToEnd();  
  26.                 reader.Close();  
  27.                 response.Close();  
  28.                 textBox1.Text = html;  
  29.             }  
  30.             catch (Exception ex)  
  31.             {  
  32.                 label4.Text = ex.Message;  
  33.             }