I needed to do similar thing before and I did it this way;
string url = "http://stopbyte.com"; // Just a sample url
WebClient wc = new WebClient();
wc.QueryString.Add("parameter1", "Hello world");
wc.QueryString.Add("parameter3", "parameter 3 value.");
var data = wc.UploadValues(url, "POST", wc.QueryString);
// data here is optional, in case we recieve any string data back from the POST request.
var responseString = UnicodeEncoding.UTF8.GetString(data);
I used WebClient class to create my POST request, and I've used WebClient.QueryString to pass parameters to the POST request. It's really recommended that you use that method above, It handles weird characters and URL parsing correctly on your behalf so you won't need to worry about encrypting/decrypting your parameters.
Afterward, I'm using the WebClient.UploadValues function, to send out the POST request.
Don't forget to use "POST" as your method.
And finally (optionally) you may receive a reply back from the server through the WebClient.UploadValues method itself.