Skip to content

Instantly share code, notes, and snippets.

@alexandrevicenzi
Created February 25, 2014 20:11
Show Gist options
  • Star 18 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save alexandrevicenzi/9216739 to your computer and use it in GitHub Desktop.
Save alexandrevicenzi/9216739 to your computer and use it in GitHub Desktop.
C# Post, Put and Patch as JSON async extensions
using System;
using System.Net.Http;
using System.Net.Http.Formatting;
using System.Threading.Tasks;
namespace MyProject.Extensions
{
public static class HttpClientEx
{
public const string MimeJson = "application/json";
public static Task<HttpResponseMessage> PatchAsync(this HttpClient client, string requestUri, HttpContent content)
{
HttpRequestMessage request = new HttpRequestMessage
{
Method = new HttpMethod("PATCH"),
RequestUri = new Uri(client.BaseAddress + requestUri),
Content = content,
};
return client.SendAsync(request);
}
public static Task<HttpResponseMessage> PostJsonAsync(this HttpClient client, string requestUri, Type type, object value)
{
return client.PostAsync(requestUri, new ObjectContent(type, value, new JsonMediaTypeFormatter(), MimeJson));
}
public static Task<HttpResponseMessage> PutJsonAsync(this HttpClient client, string requestUri, Type type, object value)
{
return client.PutAsync(requestUri, new ObjectContent(type, value, new JsonMediaTypeFormatter(), MimeJson));
}
public static Task<HttpResponseMessage> PatchJsonAsync(this HttpClient client, string requestUri, Type type, object value)
{
return client.PatchAsync(requestUri, new ObjectContent(type, value, new JsonMediaTypeFormatter(), MimeJson));
}
}
}
@jakkritpotter1
Copy link

thank you!!

@PurwantoGZ
Copy link

amazing, thx

@mtzaldo
Copy link

mtzaldo commented May 26, 2017

thanks n__n

@pawanunique
Copy link

Thanks a lot :) God bless you !

@frodriz
Copy link

frodriz commented Nov 28, 2018

Thanks!

@AmayKulkarni
Copy link

Hi Alex,

i am getting error if i call above method.

Thanks,
Amay

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment