HttpWebRequest-Post

var args = new Dictionary<string, object>()
{
   {"args1","1"},
   {"args2","2"},
};

var message = Newtonsoft.Json.JsonConvert.SerializeObject(args);
var payload = System.Text.Encoding.UTF8.GetBytes(message);

HttpWebRequest request = WebRequest.Create(apiUrl) as HttpWebRequest;
request.Method = "POST";
request.ContentType = "application/json";
request.ContentLength = payload.Length;
request.Timeout = 60 * 1000 * 15;
Stream writer = request.GetRequestStream();
writer.Write(payload, 0, payload.Length);
writer.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
string result = new StreamReader(responseStream, Encoding.GetEncoding("UTF-8"))
    .ReadToEnd();