초기커밋
This commit is contained in:
144
ServerCore/HttpClient/SharedHttpClient.cs
Normal file
144
ServerCore/HttpClient/SharedHttpClient.cs
Normal file
@@ -0,0 +1,144 @@
|
||||
using System;
|
||||
using System.Net.Http;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
using Amazon.S3.Model;
|
||||
|
||||
|
||||
namespace ServerCore;
|
||||
|
||||
public sealed class SharedHttpClient : Singleton<SharedHttpClient>
|
||||
{
|
||||
private readonly HttpClient m_http_client = new();
|
||||
|
||||
public SharedHttpClient()
|
||||
{
|
||||
}
|
||||
|
||||
//=============================================================================================
|
||||
// 일반적인 HTTP 요청 처리 (GET, POST, PUT, DELETE 등 모든 메서드 지원)
|
||||
//=============================================================================================
|
||||
public async Task<HttpResponseMessage?> sendAsync(HttpRequestMessage requestMessage, CancellationToken cancellationToken = default)
|
||||
{
|
||||
var err_msg = string.Empty;
|
||||
|
||||
try
|
||||
{
|
||||
return await m_http_client.SendAsync(requestMessage, cancellationToken);
|
||||
}
|
||||
catch (HttpRequestException e)
|
||||
{
|
||||
err_msg = $"HttpRequestException !!!, Network error or invalid response, Failed to perform in sendAsync() : exception:{e} - {requestMessage.RequestUri}";
|
||||
Log.getLogger().error(err_msg);
|
||||
}
|
||||
catch (TaskCanceledException e)
|
||||
{
|
||||
if (cancellationToken.IsCancellationRequested)
|
||||
{
|
||||
err_msg = $"TaskCanceledException !!!, Request was canceled by caller, Failed to perform in sendAsync() : exception:{e} - {requestMessage.RequestUri}";
|
||||
Log.getLogger().error(err_msg);
|
||||
}
|
||||
else
|
||||
{
|
||||
err_msg = $"TaskCanceledException !!!, Request timed out, Failed to perform in sendAsync() : exception:{e} - {requestMessage.RequestUri}";
|
||||
Log.getLogger().error(err_msg);
|
||||
}
|
||||
}
|
||||
catch (TimeoutException e)
|
||||
{
|
||||
err_msg = $"TimeoutException !!!, The request exceeded the timeout limit, Failed to perform in sendAsync() : exception:{e} - {requestMessage.RequestUri}";
|
||||
Log.getLogger().error(err_msg);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
err_msg = $"Exception !!!, Unhandled exception during HTTP request, Failed to perform in sendAsync() : exception:{e} - {requestMessage.RequestUri}";
|
||||
Log.getLogger().error(err_msg);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public async Task<HttpResponseMessage?> getAsync(string url, CancellationToken cancellationToken = default)
|
||||
{
|
||||
var err_msg = string.Empty;
|
||||
|
||||
try
|
||||
{
|
||||
// GET Http Method
|
||||
return await m_http_client.GetAsync(url, cancellationToken);
|
||||
}
|
||||
catch (HttpRequestException e)
|
||||
{
|
||||
err_msg = $"HttpRequestException !!!, Network error or invalid response, Failed to perfom in getAsync() : exception:{e} - {url}";
|
||||
Log.getLogger().error(err_msg);
|
||||
}
|
||||
catch (TaskCanceledException e)
|
||||
{
|
||||
if (cancellationToken.IsCancellationRequested)
|
||||
{
|
||||
err_msg = $"TaskCanceledException !!!, Request was canceled by caller, Failed to perfom in getAsync() : exception:{e} - {url}";
|
||||
Log.getLogger().error(err_msg);
|
||||
}
|
||||
else
|
||||
{
|
||||
err_msg = $"TaskCanceledException !!!, Request timed out, Failed to perfom in getAsync() : exception:{e} - {url}";
|
||||
Log.getLogger().error(err_msg);
|
||||
}
|
||||
}
|
||||
catch (TimeoutException e)
|
||||
{
|
||||
err_msg = $"TimeoutException !!!, The request exceeded the timeout limit, Failed to perfom in getAsync() : exception:{e} - {url}";
|
||||
Log.getLogger().error(err_msg);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
err_msg = $"Exception !!!, Unhandled exception during HTTP GET request, Failed to perfom in getAsync() : exception:{e} - {url}";
|
||||
Log.getLogger().error(err_msg);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public async Task<HttpResponseMessage?> postAsync(string url, HttpContent content, CancellationToken cancellationToken = default)
|
||||
{
|
||||
var err_msg = string.Empty;
|
||||
|
||||
try
|
||||
{
|
||||
// POST Http Method
|
||||
return await m_http_client.PostAsync(url, content, cancellationToken);
|
||||
}
|
||||
catch (HttpRequestException e)
|
||||
{
|
||||
err_msg = $"HttpRequestException !!!, Network error or invalid response, Failed to perfom in getAsync() : exception:{e} - {url}";
|
||||
Log.getLogger().error(err_msg);
|
||||
}
|
||||
catch (TaskCanceledException e)
|
||||
{
|
||||
if (cancellationToken.IsCancellationRequested)
|
||||
{
|
||||
err_msg = $"TaskCanceledException !!!, Request was canceled by caller, Failed to perfom in getAsync() : exception:{e} - {url}";
|
||||
Log.getLogger().error(err_msg);
|
||||
}
|
||||
else
|
||||
{
|
||||
err_msg = $"TaskCanceledException !!!, Request timed out, Failed to perfom in getAsync() : exception:{e} - {url}";
|
||||
Log.getLogger().error(err_msg);
|
||||
}
|
||||
}
|
||||
catch (TimeoutException e)
|
||||
{
|
||||
err_msg = $"TimeoutException !!!, The request exceeded the timeout limit, Failed to perfom in getAsync() : exception:{e} - {url}";
|
||||
Log.getLogger().error(err_msg);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
err_msg = $"Exception !!!, Unhandled exception during HTTP GET request, Failed to perfom in getAsync() : exception:{e} - {url}";
|
||||
Log.getLogger().error(err_msg);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user