Creating a HTTP POST from in C#

Here is a way to make a HTTP request to a web page with the POST method.
Use this method with parameters formatted like in GET method.

Example : result = PostPage("www.mypage.aspx", "id=2&name=Paul&age=33");

public string PostPage(string url, string params)
{
byte[] dataToPost = new ASCIIEncoding().GetBytes(params);


HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);
myRequest.Method = "POST";

//Request properties
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = dataToPost.Length;

//Writing data in stream
Stream myStream = myRequest.GetRequestStream();
myStream.Write(dataToPost, 0, dataToPost.Length);
myStream.Close();

//Getting response
WebResponse myResponse = myRequest.GetResponse();

//Reading it
Stream responseStream = myResponse.GetResponseStream();
StreamReader streamReader = new StreamReader(responseStream);
string result = streamReader.ReadToEnd();


//closing all
streamReader.Close();
responseStream.Close();
myResponse.Close();
myStream.Close();

return result;
}

No comments: