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.

La solicitud PUT no llega a mi controlador usando el cliente Feign, obteniendo el código de estado 415.

Este es mi código de cliente ficticio:

@RequestLine("PUT /merchants/{merchantId}")
@Headers("Content-Type: application/json")
MerchantDTO updateMerchant(@Param("merchantId") Long merchantId, PutMerchantDTO putMerchantDTO);

que se llama en una clase de requestFactory.
Y este es mi código de controlador:

@PutMapping(value = "/merchants/{merchantId}")
ResponseEntity<merchantdto> updateMerchant(@RequestBody @NotEmpty PutMerchantDTO updateMerchantRequest, @PathVariable("merchantId") final Long merchantId) {

    return ResponseEntity.ok(merchantUpdateMapper.toDtoMerchant(merchantUpdateService.processUpdate(merchantUpdateMapper.toDomain(updateMerchantRequest, merchantId))));
}

¿Alguien puede decirme por qué obtengo un código de estado 415 al hacer una solicitud PUT con este cliente ficticio a mi controlador?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El código de error 415 generalmente indica que el servidor se niega a aceptar la solicitud porque el formato de la carga útil no es compatible o no está especificado. En este caso específico, podría significar que el servidor espera un tipo de contenido diferente para el cuerpo de la solicitud.

    Al examinar el código del cliente Feign, se especifica el tipo de contenido como “application/json” en las cabeceras. Por lo tanto, es probable que el servidor espere una carga útil JSON para la solicitud PUT.

    Por otro lado, el código del controlador especifica el cuerpo de la solicitud como “@RequestBody @NotEmpty PutMerchantDTO updateMerchantRequest”, lo que significa que también espera una carga útil JSON.

    Para solucionar este problema, puedes intentar depurar e inspeccionar las cabeceras y el cuerpo de la solicitud y respuesta para identificar cualquier discrepancia. También puedes intentar especificar explícitamente el tipo de contenido tanto en el cliente Feign como en el código del controlador para asegurar la consistencia.

Comments are closed.