request.Method要設定為大寫的POST,否則會返回403錯誤
POST方法,也可能在伺服器端無法取到POST的資料,所以還得把ContentType設定為application/x-www-form-urlencoded
以下是個例子,沒有進行異常捕捉,有需要的朋友,再自己補上~~~
WebRequest req = WebRequest.Create("http://expert.csdn.net/Expert/topic/1581/1581934.xml");<br />req.Method = "POST";<br />req.ContentType = "application/x-www-form-urlencoded";<br />byte[] postData = System.Text.Encoding.GetEncoding("gb2312").GetBytes( "temp=1063959&userid=654321" ); //Post的資料<br />req.ContentLength = postData.Length;<br />Stream postStream = req.GetRequestStream();<br />postStream.Write(postData, 0, postData.Length);<br />postStream.Close();<br />WebResponse res = req.GetResponse();<br />System.Text.Encoding resEncoding = System.Text.Encoding.GetEncoding("gb2312"); //接收的編碼<br />StreamReader reader = new StreamReader( res.GetResponseStream(),resEncoding );<br />string html = reader.ReadToEnd(); //接收的Html<br />reader.Close();<br />res.Close();
關鍵的兩行代碼:
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";