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.

Estado 400 desde WebApi al llamar a PostAsJsonAsync desde el cliente Blazor.

Estoy obteniendo el siguiente error al llamar a mi Web Api:

System.Net.Http.HttpClient.IMyDataService.LogicalHandler[101]
          Finalización del procesamiento de la solicitud HTTP después de 70.5ms - 400

Estoy usando PostAsJsonAsync y parece que no le gusta el objeto TValue en el cliente.
Cuando ejecuto el cliente en modo depuración, el punto de interrupción en el controlador de la Api nunca se alcanza y se devuelve instantáneamente el estado 400.

He probado enviando solo una cadena simple y funciona, pero no funciona cuando uso un modelo.

public async Task<MyModel> AddNew(MyModel model)
{
    var jsonSerializerOptions = new JsonSerializerOptions() { PropertyNameCaseInsensitive = true };
    var response = await _httpClient.PostAsJsonAsync($"api/add-model", model, jsonSerializerOptions);

...
    return model;
}

Esto me confunde porque tengo otro controlador de API con una solicitud post en otro componente y funciona perfectamente bien.

El controlador:

[HttpPost("add-model")]
public async Task<ActionResult<MyModel>> AddNewModel(MyModel model)
{
...
}
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error sugiere que hay un problema con la solicitud HTTP que se está haciendo desde el cliente al punto final de la API. Específicamente, la solicitud está devolviendo un código de estado 400, lo que sugiere que hay un problema con la propia solicitud.

    Según el fragmento de código proporcionado, parece que el problema podría estar en el objeto MyModel que se está pasando al método PostAsJsonAsync. Al utilizar este método, el objeto que se pasa debe ser serializable a JSON, por lo que es posible que haya algún problema con la serialización del objeto MyModel.

    Una cosa que puede ayudar a depurar este problema es verificar los registros de la API para ver si hay más información sobre el error que está ocurriendo. Esto a menudo puede dar más información sobre el problema específico que está causando el código de estado 400. Además, puedes intentar usar una herramienta como Fiddler o Postman para replicar la solicitud que se está haciendo desde el cliente y ver si hay más información sobre el problema con la solicitud misma.

    También es importante destacar que el hecho de que el otro controlador de la API funcione correctamente sugiere que el problema podría ser específico del punto final “AddNew” y no un problema más amplio con la configuración de la API. Esto puede ayudar a reducir el alcance del proceso de depuración.

Comments are closed.