headers getforobject example ejemplo spring rest content-type resttemplate

getforobject - Establecer el tipo de contenido del encabezado de solicitud a json en Spring Framework resttlate



resttemplate spring headers (1)

Puedes intentar usar cualquier método del código de abajo

1

HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity<String> entity = new HttpEntity<String>(postBodyJson ,headers); restTemplate.put(uRL, entity);

2

RequestEntity<String> requestEntity = RequestEntity .post(new URL(attributeLookupUrl).toURI()) .contentType(MediaType.APPLICATION_JSON) .body(postBodyJson); restTemplate.exchange(requestEntity, responseClass);

3

HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); // if you need to pass form parameters in request with headers. MultiValueMap<String, String> map = new LinkedMultiValueMap<>(); map.add("username", userName); map.add("password", password); HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<>(map, headers); ResponseEntity<TokenVO> responses = restTemplate.postForEntity(URL, request, responseClass);

Esta pregunta ya tiene una respuesta aquí:

Estoy aprendiendo Spring Framework para crear un cliente de un servicio web REST que utiliza autenticación básica e intercambios JSON. Después de mucho buscar en la web, escribí un código que funcionó (a continuación), pero ahora aparece un error "Tipo de medio no compatible" porque las solicitudes se envían con texto / sin formato de tipo de contenido en lugar de con aplicación / json. No he encontrado nada en la web que muestre cómo configurar el Tipo de Contenido en el encabezado de la solicitud (sin perderse por completo en la maleza). Mi código es:

import org.apache.http.auth.AuthScope; import org.apache.http.auth.UsernamePasswordCredentials; import org.apache.http.client.HttpClient; import org.apache.http.impl.client.BasicCredentialsProvider; import org.apache.http.impl.client.HttpClientBuilder; import org.springframework.http.client.ClientHttpRequestFactory; import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.web.client.RestTemplate; ... BasicCredentialsProvider credentialsProvider = new BasicCredentialsProvider(); credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("login", "password")); HttpClient httpClient = HttpClientBuilder.create().setDefaultCredentialsProvider(credentialsProvider).build(); ClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(httpClient); RestTemplate restTemplate = new RestTemplate(requestFactory); String url = "http://host:8080/path/"; String postBody = getPostInput("filename"); jsonString = restTemplate.postForObject(path, postBody, String.class);

Cualquier orientación sería muy apreciada.

Gracias george