This repository has been archived on 2022-11-03. You can view files and clone it, but cannot push or open issues or pull requests.
DevOpsOpenHack/support/simulator/Simulator.DataStore.API/Helpers/HttpHelpers.cs
2022-11-03 16:41:13 -04:00

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);
}
}
}