An HttpWebRequest has the properties ContentLength and ContentType, but how do you actually set the content of the request?
HttpWebRequest.GetRequestStream() gets the request Stream. After you have set the headers, use GetRequestStream() and write the content to the stream.
This post explains how to transmit files using HttpWebRequest, which should provide a good example of how to send content.
But, basically the format would be
var stream = request.GetRequestStream();
stream.Write( stuff );
stream.Close();
var response = request.GetResponse();