Winform窗体中发送HTTP请求
手工发送HTTP请求主要是调用 System.Net的HttpWebResponse方法
手工发送HTTP的GET请 求:
1 string strURL = "http://localhost/Play/CH1/Service1.asmx/doSearch?keyword="; 2 strURL +=this.textBox1.Text; 3 System.Net.HttpWebRequest request; 4 // 创建一个HTTP请求 5 request = (System.Net.HttpWebRequest)WebRequest.Create(strURL); 6 //request.Method="get"; 7 System.Net.HttpWebResponse response; 8 response = (System.Net.HttpWebResponse)request.GetResponse(); 9 System.IO.Stream s; 10 s = response.GetResponseStream(); 11 XmlTextReader Reader = new XmlTextReader(s); 12 Reader.MoveToContent(); 13 string strValue = Reader.ReadInnerXml(); 14 strValue = strValue.Replace("<","<"); 15 strValue = strValue.Replace(">",">"); 16 MessageBox.Show(strValue); 17 Reader.Close();
手工发送HTTP的POST请求
1 string strURL = "http://localhost/Play/CH1/Service1.asmx/doSearch"; 2 System.Net.HttpWebRequest request; 3 4 request = (System.Net.HttpWebRequest)WebRequest.Create(strURL); 5 //Post请求方式 6 request.Method="POST"; 7 // 内容类型 8 request.ContentType="application/x-www-form-urlencoded"; 9 // 参数经过URL编码 10 string paraUrlCoded = System.Web.HttpUtility.UrlEncode("keyword"); 11 paraUrlCoded += "=" + System.Web.HttpUtility.UrlEncode(this.textBox1.Text); 12 byte[] payload; 13 //将URL编码后的字符串转化为字节 14 payload = System.Text.Encoding.UTF8.GetBytes(paraUrlCoded); 15 //设置请求的 ContentLength 16 request.ContentLength = payload.Length; 17 //获得请 求流 18 Stream writer = request.GetRequestStream(); 19 //将请求参数写入流 20 writer.Write(payload,0,payload.Length); 21 // 关闭请求流 22 writer.Close(); 23 System.Net.HttpWebResponse response; 24 // 获得响应流 25 response = (System.Net.HttpWebResponse)request.GetResponse(); 26 System.IO.Stream s; 27 s = response.GetResponseStream(); 28 XmlTextReader Reader = new XmlTextReader(s); 29 Reader.MoveToContent(); 30 string strValue = Reader.ReadInnerXml(); 31 strValue = strValue.Replace("<","<"); 32 strValue = strValue.Replace(">",">"); 33 MessageBox.Show(strValue); 34 Reader.Close();