38 lines
1.3 KiB
C#
38 lines
1.3 KiB
C#
using Microsoft.AspNetCore.Components;
|
|
using System.Net.Http.Json;
|
|
|
|
namespace Front.Services
|
|
{
|
|
public class HttpClientController
|
|
{
|
|
public readonly HttpClient _hc;
|
|
public readonly NavigationManager _nav;
|
|
public HttpClientController(HttpClient hc, NavigationManager nav)
|
|
{
|
|
_hc = hc;
|
|
_nav = nav;
|
|
}
|
|
public async Task<HttpResponseMessage> Get(string route)
|
|
{
|
|
var request = await _hc.GetAsync(route);
|
|
if (request.StatusCode==System.Net.HttpStatusCode.Unauthorized)
|
|
_nav.NavigateTo("/Sign-in/unon");
|
|
return request;
|
|
}
|
|
public async Task<HttpResponseMessage> Post<T>(string route,T mode)
|
|
{
|
|
var request = await _hc.PostAsJsonAsync(route,mode);
|
|
if (request.StatusCode == System.Net.HttpStatusCode.Unauthorized)
|
|
_nav.NavigateTo("/Sign-in/unon");
|
|
return request;
|
|
}
|
|
public async Task<HttpResponseMessage> Put<T>(string route, T mode)
|
|
{
|
|
var request = await _hc.PutAsJsonAsync(route, mode);
|
|
if (request.StatusCode == System.Net.HttpStatusCode.Unauthorized)
|
|
_nav.NavigateTo("/Sign-in/unon");
|
|
return request;
|
|
}
|
|
}
|
|
}
|