Wednesday, April 18, 2007

Using HttpWebRequest & HttpWebResponse to POST Data

If you want to get a web page, use HttpWebRequest to make request, and use HttpWebResponse to get response. The following code demostrates how to make request by POST method, then get response from web server. You can get response content by manipulating stream st.

HttpWebRequest hwr;


hwr = (HttpWebRequest)WebRequest.Create(url);


hwr.Method = "POST";


string postdata = "formpostdata=" + System.Web.HttpUtility.UrlEncode(dataToPost);

 

ASCIIEncoding enc = new ASCIIEncoding();

 

byte[] bytel = enc.GetBytes(postdata);

 

hwr.ContentType = "application/x-www-form-urlencoded";

hwr.ContentLength = bytel.Length;

 

//write to request stream

Stream newstream = hwr.GetRequestStream();

newstream.Write(bytel, 0, bytel.Length);

newstream.Close();

 

hwr.Timeout = 10000;

 

//get response

HttpWebResponse hwresp = (HttpWebResponse)hwr.GetResponse();


Stream st = hwresp.GetResponseStream();

No comments: