An HttpWebRequest has the properties ContentLength and ContentType, but how do you actually set the content of the request?
HttpWebRequest's RequestStream is where the action is at - rough code...
//build the request object
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(http://someapi.com/);
//write the input data (aka post) to a byte array
byte[] requestBytes = new ASCIIEncoding().GetBytes(inputData);
//get the request stream to write the post to
Stream requestStream = request.GetRequestStream();
//write the post to the request stream
requestStream.Write(requestBytes, 0, requestBytes.Length);
If you're sending extended chars, use UTF8Encoding, make sure you set the right content-type/charset header too.