httpclient c# post json example

Example 1: c# httpclient post json stringcontent

private static async Task PostBasicAsync(object content, CancellationToken cancellationToken)
{
    using (var client = new HttpClient())
    using (var request = new HttpRequestMessage(HttpMethod.Post, Url))
    {
        var json = JsonConvert.SerializeObject(content);
        using (var stringContent = new StringContent(json, Encoding.UTF8, "application/json"))
        {
            request.Content = stringContent;

            using (var response = await client
                .SendAsync(request, HttpCompletionOption.ResponseHeadersRead, cancellationToken)
                .ConfigureAwait(false))
            {
                response.EnsureSuccessStatusCode();
            }
        }
    }
}

Example 2: example HttpClient c# Post

//Base code from: http://zetcode.com/csharp/httpclient/
public async string Example() 
{
  	//The data that needs to be sent. Any object works.
	var pocoObject = new 
	{
	  	Name = "John Doe",
		Occupation = "gardener"
	};

  	//Converting the object to a json string. NOTE: Make sure the object doesn't contain circular references.
	string json = JsonConvert.SerializeObject(pocoObject);
  	
  	//Needed to setup the body of the request
	StringContent data = new StringContent(json, Encoding.UTF8, "application/json");

  	//The url to post to.
	var url = "https://httpbin.org/post";
	var client = new HttpClient();

  	//Pass in the full URL and the json string content
	var response = await client.PostAsync(url, data);

  	//It would be better to make sure this request actually made it through
	string result = await response.Content.ReadAsStringAsync();
  	
  	//close out the client
  	client.Dispose();
  
	return result;
}