79 lines
2.5 KiB
C#
79 lines
2.5 KiB
C#
|
|
using System.ComponentModel;
|
|
using System.Net.Http.Formatting;
|
|
using System.Net.Http.Headers;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace System.Net.Http
|
|
{
|
|
public static class HttpClientExtensions
|
|
{
|
|
public static Task<HttpResponseMessage> PatchAsJsonAsync<T>(this HttpClient client, string requestUri, T value)
|
|
{
|
|
//Ensure.Argument.NotNull(client, "client");
|
|
//Ensure.Argument.NotNullOrEmpty(requestUri, "requestUri");
|
|
//Ensure.Argument.NotNull(value, "value");
|
|
|
|
var content = new ObjectContent<T>(value, new JsonMediaTypeFormatter());
|
|
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
|
|
var request = new HttpRequestMessage(new HttpMethod("PATCH"), requestUri) { Content = content };
|
|
|
|
return client.SendAsync(request);
|
|
}
|
|
public async static Task<HttpResponseMessage> PatchAsync(this HttpClient client, string requestUri, HttpContent content)
|
|
{
|
|
var method = new HttpMethod("PATCH");
|
|
|
|
var request = new HttpRequestMessage(method, requestUri)
|
|
{
|
|
Content = content
|
|
};
|
|
|
|
return await client.SendAsync(request);
|
|
}
|
|
|
|
public async static Task<HttpResponseMessage> PatchAsync(this HttpClient client, Uri requestUri, HttpContent content)
|
|
{
|
|
var method = new HttpMethod("PATCH");
|
|
|
|
var request = new HttpRequestMessage(method, requestUri)
|
|
{
|
|
Content = content
|
|
};
|
|
|
|
return await client.SendAsync(request);
|
|
}
|
|
|
|
public async static Task<HttpResponseMessage> PatchAsync(this HttpClient client, string requestUri, HttpContent content, CancellationToken cancellationToken)
|
|
{
|
|
var method = new HttpMethod("PATCH");
|
|
|
|
var request = new HttpRequestMessage(method, requestUri)
|
|
{
|
|
Content = content
|
|
};
|
|
|
|
return await client.SendAsync(request, cancellationToken);
|
|
}
|
|
|
|
public async static Task<HttpResponseMessage> PatchAsync(this HttpClient client, Uri requestUri, HttpContent content, CancellationToken cancellationToken)
|
|
{
|
|
var method = new HttpMethod("PATCH");
|
|
|
|
var request = new HttpRequestMessage(method, requestUri)
|
|
{
|
|
Content = content
|
|
};
|
|
|
|
return await client.SendAsync(request, cancellationToken);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|