For example with this code in the server side:
[HttpPost] public Boolean PostDataToDB(int n, string s) { //validate and write to database return false; }
You can use different approches:
With WebClient:
using (var wb = new WebClient()) { var data = new NameValueCollection(); data["n"] = "42"; data["s"] = "string value"; var response = wb.UploadValues("http://www.example.org/receiver.aspx", "POST", data); }
With HttpRequest:
var request = (HttpWebRequest)WebRequest.Create("http://www.example.org/receiver.aspx"); var postData = "n=42&s=string value"; var data = Encoding.ASCII.GetBytes(postData); request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = data.Length; using (var stream = request.GetRequestStream()) { stream.Write(data, 0, data.Length); } var response = (HttpWebResponse)request.GetResponse(); var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
With HttpClient:
using (var client = new HttpClient()) { var values = new List<KeyValuePair<string, string>>(); values.Add(new KeyValuePair<string, string>("n", "42")); values.Add(new KeyValuePair<string, string>("s", "string value")); var content = new FormUrlEncodedContent(values); var response = await client.PostAsync("http://www.example.org/receiver.aspx", content); var responseString = await response.Content.ReadAsStringAsync(); }
With WebRequest
WebRequest request = WebRequest.Create ("http://www.example.org/receiver.aspx"); request.Method = "POST"; string postData = "n=42&s=string value"; byte[] byteArray = Encoding.UTF8.GetBytes (postData); request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = byteArray.Length; Stream dataStream = request.GetRequestStream (); dataStream.Write (byteArray, 0, byteArray.Length); dataStream.Close (); //Response WebResponse response = request.GetResponse (); Console.WriteLine (((HttpWebResponse)response).StatusDescription); dataStream = response.GetResponseStream (); StreamReader reader = new StreamReader (dataStream); string responseFromServer = reader.ReadToEnd (); Console.WriteLine (responseFromServer); reader.Close (); dataStream.Close (); response.Close ();
see msdn