Posting data with C#

I don't know why but I've had some trouble executing a POST request using C# server side in the past.  I guess since I don't have a need for posting data from the server often (or a compelling enough need to figure it out), I never did the homework.  Well, I did have that need today and proved to myself it was as simple as I'd expect.  The key points to remember are settings the ContentType to "application/x-www-form-urlencoded", setting the ContentLength to the length of the data you're posting, settings the Method to "Post", and writing the data to the RequestStream.  Here's an example:

HttpWebRequest req = WebRequest.Create(url) as HttpWebRequest;

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

req.Method = "POST";

 

//write the post values

string postParams = "name=some sort of value";

byte[] buffer = System.Text.ASCIIEncoding.UTF8.GetBytes(postParams);

req.ContentLength = buffer.Length;

using (Stream writer = req.GetRequestStream())

{

    writer.Write(buffer, 0, buffer.Length);

}

 

//get the response

string responseData = string.Empty;

HttpWebResponse resp = req.GetResponse() as HttpWebResponse;

using (Stream receiveStream = resp.GetResponseStream())

{

    Encoding encode = Encoding.GetEncoding("utf-8");

    using (StreamReader readStream = new StreamReader(receiveStream, encode))

    {

        responseData = readStream.ReadToEnd();

    }

}

resp.Close();

I hope that's helpful to another!

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Related posts

Add comment


(Will show your Gravatar icon)  

  Country flag

[b][/b] - [i][/i] - [u][/u]- [quote][/quote]



Live preview

October 12. 2008 01:34 AM

About Me

I'm Ian Suttle and I work for IGN Entertainment, a division of Fox Interactive Media.

Recent posts