65 lines
1.9 KiB
C#
65 lines
1.9 KiB
C#
using Newtonsoft.Json;
|
|
using Serilog;
|
|
using System;
|
|
using System.Net;
|
|
using System.Net.Http;
|
|
using System.Text;
|
|
|
|
namespace LCU.Shared.Collections.RepoApiLib.Utilities
|
|
{
|
|
public class ClientHelpers : IClientHelpers
|
|
{
|
|
private readonly IHttpClientFactory _clientFactory;
|
|
|
|
public ClientHelpers(IHttpClientFactory clientFactory)
|
|
{
|
|
_clientFactory = clientFactory;
|
|
}
|
|
|
|
public Uri CreateRequestUri(string clientUrl)
|
|
{
|
|
return new Uri(clientUrl);
|
|
}
|
|
|
|
public HttpContent CreateHttpContent(string strPayload)
|
|
{
|
|
HttpContent content = new StringContent(strPayload, Encoding.UTF8, "application/json");
|
|
return content;
|
|
}
|
|
|
|
public HttpRequestMessage CreateGetHttpRequestMessage(string clientUrl, string apiKey)
|
|
{
|
|
var uri = CreateRequestUri(clientUrl);
|
|
return CreateHttpRequestMessage(HttpMethod.Get, uri, apiKey);
|
|
}
|
|
|
|
public HttpRequestMessage CreateHttpRequestMessage(HttpMethod method, Uri uri, string apiKey)
|
|
{
|
|
HttpRequestMessage request = new HttpRequestMessage()
|
|
{
|
|
Method = method,
|
|
RequestUri = uri,
|
|
};
|
|
|
|
request.Headers.Add("api-key", apiKey);
|
|
|
|
return request;
|
|
}
|
|
|
|
public HttpResponseMessage SendHttpRequestMessage(HttpRequestMessage httpRequestMessage)
|
|
{
|
|
try
|
|
{
|
|
var client = _clientFactory.CreateClient();
|
|
var response = client.SendAsync(httpRequestMessage).Result;
|
|
|
|
return response;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Log.Error(ex, "Failure in sending http request message.");
|
|
return new HttpResponseMessage(HttpStatusCode.BadRequest);
|
|
}
|
|
}
|
|
}
|
|
} |