System.Net.ServicePointManager.Expect100Continue = false;//解决服务器返回异常 417
HttpWebRequest hwr = (HttpWebRequest)HttpWebRequest.Create("http://www.cpooo.com/company/postcode.php");//实例化一个httpwebrequest对象
string cc = "p_city=%B3%C9%B6%BC&p_postcode=&p_area=&Submit=+%B2%E9%D1%AF+";//请求字符串
byte[] pt = Encoding.ASCII.GetBytes(cc);//转化成字节数组
hwr.ContentType = "application/x-www-form-urlencoded";//请求的内容类别
hwr.ContentLength = pt.Length;//发送请求的文本长度
hwr.Referer = "http://www.cpooo.com/company/postcode.php";//服务器引用对象
hwr.Method = "POST";//请求方式
using (Stream reqStream = hwr.GetRequestStream())//获取返回的数据流
{
reqStream.Write(pt, 0, pt.Length);
}
using (WebResponse wr = hwr.GetResponse())//获取返回的webresponse对象
{
StreamReader sr =new StreamReader( wr.GetResponseStream(),Encoding.GetEncoding("gb2312"));//用流对象进行读取
textBox1.Text= sr.ReadToEnd();//读取全部到文本框
}
上面是个简单实例,下面是完整的理论方法
Encoding myEncoding = Encoding.GetEncoding("gb2312");
string param = HttpUtility.UrlEncode("参数一", myEncoding) + "=" + HttpUtility.UrlEncode("值一", myEncoding) + "&" + HttpUtility.UrlEncode("参数二", myEncoding) + "=" + HttpUtility.UrlEncode("值二", myEncoding);
byte[] postBytes = Encoding.ASCII.GetBytes(param);
HttpWebRequest req = (HttpWebRequest) HttpWebRequest.Create( "http://www.baidu.com/s" );
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded;charset=gb2312";
req.ContentLength = postBytes.Length;
using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(bs, 0, bs.Length);
}
using (WebResponse wr = req.GetResponse())
{
//在这里对接收到的页面内容进行处理
}