headers getforobject consume java resttemplate

java - getforobject - resttemplate spring headers



Cómo pasar un par de valores clave usando resttemplate en java (1)

El FormHttpMessageConverter se usa para convertir objetos MultiValueMap para enviar solicitudes HTTP. Los tipos de medios predeterminados para este convertidor son application/x-www-form-urlencoded y multipart/form-data . Al especificar el tipo de contenido como text/plain , le está diciendo a RestTemplate que use el StringHttpMessageConverter

headers.setContentType(MediaType.TEXT_PLAIN);

Pero ese convertidor no admite la conversión de un MultiValueMap , por lo que está recibiendo el error. Tienes unas cuantas opciones. Puede cambiar el tipo de contenido a application/x-www-form-urlencoded

headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);

O NO puede establecer el tipo de contenido y dejar que RestTemplate lo maneje por usted. Esto lo determinará en función del objeto que está intentando convertir. Intente utilizar la siguiente solicitud como alternativa.

ResponseEntity<String> model = restTemplate.postForEntity(giftango_us_url, bodyMap, String.class);

Tengo que pasar par de valor clave en el cuerpo de solicitud de correos. Pero cuando ejecuto mi código, aparece el error como "No se pudo escribir la solicitud: no se encontró el HttpMessageConverter adecuado para el tipo de solicitud [org.springframework.util.LinkedMultiValueMap] y el tipo de contenido [texto / plano]"

Mi código es el siguiente:

MultiValueMap<String, String> bodyMap = new LinkedMultiValueMap<String, String>(); bodyMap.add(GiftangoRewardProviderConstants.GIFTANGO_SOLUTION_ID, giftango_solution_id); bodyMap.add(GiftangoRewardProviderConstants.SECURITY_TOKEN, security_token); bodyMap.add(GiftangoRewardProviderConstants.REQUEST_TYPE, request_type); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.TEXT_PLAIN); HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<MultiValueMap<String, String>>(bodyMap, headers); RestTemplate restTemplate = new RestTemplate(); ResponseEntity<String> model = restTemplate.exchange(giftango_us_url, HttpMethod.POST, request, String.class); String response = model.getBody();