es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué no recibo ninguna respuesta de la solicitud REST?

Estoy intentando hacer una solicitud a una API REST.

Mi problema es que no pasa nada, parece que no se ejecuta en absoluto.

No obtengo errores ni respuestas en absoluto.

Por favor, eche un vistazo a mi código:

using System;
using System.Threading.Tasks;
using System.Net.Http.Json;
using System.Net.Http;

namespace RescoTrello
{
    class Program
    {
        static void Main(string[] args)
        {
            var url = "http://ejemplo.com";
                var userName = "xxxx";
            var passWord = "yyyy";
            var credentials = "Basic " + Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(userName + ":" + passWord));

            var client = new HttpClient(); // idealmente esto sería creado desde IHttpClientFactory
            var request = new HttpRequestMessage(HttpMethod.Post, url);

            request.Headers.Add("Authorization", credentials);

            var jsonString = "{'Journal': 'Standard', 'Item':'23396', 'Qty':4 }";
            request.Content = JsonContent.Create(jsonString);

            var response = Task.Run(async () =>
            {
                var response = await client.SendAsync(request);
                var result = await response.Content.ReadAsStringAsync();
                Console.WriteLine(result);
            });
            Console.WriteLine(response.Status);
        }
    }
}
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Hay algunos problemas potenciales con este código que podrían estar causando el problema:

    1. Problema con Async/await: Dentro de la tarea response, estás esperando client.SendAsync(request) y response.Content.ReadAsStringAsync(), pero no estás esperando toda la tarea completa. Debes agregar await response; al final de la tarea para asegurarte de que esté totalmente esperada antes de continuar.
    2. Problema de autorización: Asegúrate de que los valores userName y passWord sean correctos y coincidan con el formato esperado para la cabecera de autorización.

    3. Problema de contenido: Asegúrate de que el contenido jsonString sea un JSON válido y coincida con el formato esperado para el punto final de la API.

    4. Problema de punto final: Confirma que la variable url sea correcta y coincida con el punto final esperado para la API.

    Además, puede ser útil agregar un manejo de errores al código para capturar cualquier excepción que pueda estar ocurriendo durante la solicitud. Puedes envolver todo el bloque Task.Run en una declaración try/catch y registrar cualquier excepción que ocurra.

Comments are closed.