Qué buenas prácticas seguir para llamar a un API desde .NET 6 (sea desde Blazor, aplicación de consola, u otro REST API)?
public string EnviarSMS(string accessToken, string Origen, string Texto, string Movil, DateTime Fecha)
{
ErrorMessage = "";
var json = new
{
Origen = Origen,
Texto = Texto,
Movil = Movil,
Fecha = Fecha.ToString("yyyy-MM-dd") + "T" + Fecha.ToString("HH:mm:ss")
};
var jsonString = JsonConvert.SerializeObject(json);
HttpClient httpClient = new HttpClient();
httpClient.BaseAddress = Uri;
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
var response = httpClient.PostAsync("SMS", new StringContent(jsonString, Encoding.UTF8, "application/json"))
.ConfigureAwait(false).GetAwaiter().GetResult();
if (response.StatusCode == System.Net.HttpStatusCode.OK)
{
SMSResponse smsResponse = response.Content.ReadFromJsonAsync<SMSResponse>().ConfigureAwait(false).GetAwaiter().GetResult();
if (smsResponse.Codigo == "0")
return smsResponse.Info;
else
{
ErrorMessage = smsResponse.Info;
return string.Empty;
}
}
else
{
string stringResponse = $"{Uri} " + response.Content.ReadAsStringAsync().ConfigureAwait(false).GetAwaiter().GetResult();
ErrorMessage = "ERROR: " + stringResponse;
return string.Empty;
}
}