54 lines
1.7 KiB
C#
54 lines
1.7 KiB
C#
using Newtonsoft.Json;
|
|
using System.Net.Http;
|
|
using System.Text;
|
|
|
|
namespace Marco.Pms.UtilityApplication
|
|
{
|
|
internal class ApiService
|
|
{
|
|
private readonly HttpClient _httpClient;
|
|
private readonly string _apiUrl;
|
|
|
|
public ApiService(string apiUrl)
|
|
{
|
|
_httpClient = new HttpClient();
|
|
_apiUrl = apiUrl;
|
|
}
|
|
|
|
public async Task<bool> SendDataAsync<T>(T data)
|
|
{
|
|
try
|
|
{
|
|
var jsonContent = JsonConvert.SerializeObject(data);
|
|
var content = new StringContent(jsonContent, Encoding.UTF8, "application/json");
|
|
|
|
HttpResponseMessage response = await _httpClient.PostAsync(_apiUrl, content);
|
|
|
|
response.EnsureSuccessStatusCode(); // Throws an exception if the HTTP response status is an error code.
|
|
|
|
string responseBody = await response.Content.ReadAsStringAsync();
|
|
// You can parse the responseBody if your API returns something useful
|
|
Console.WriteLine($"API Response: {responseBody}");
|
|
|
|
return true;
|
|
}
|
|
catch (HttpRequestException ex)
|
|
{
|
|
Console.WriteLine($"API request error: {ex.Message}");
|
|
// Log or handle the error appropriately in your UI
|
|
return false;
|
|
}
|
|
catch (JsonException ex)
|
|
{
|
|
Console.WriteLine($"JSON serialization error: {ex.Message}");
|
|
return false;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Console.WriteLine($"An unexpected error occurred: {ex.Message}");
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
}
|