I would like to make a simple HTTP POST using Spring RestTemplate. the Wesb service accept JSON in parameter for example: {"name":"mame","email":"[email protected]"}
public static void main(String[] args) { final String uri = "url"; RestTemplate restTemplate = new RestTemplate(); // Add the Jackson message converter restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter()); // create request body String input = "{ \"name\": \"name\", \"email\": \"[email protected]\" }"; JsonObject request = new JsonObject(); request.addProperty("model", input); // set headers HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); headers.set("Authorization", "Basic " + "xxxxxxxxxxxx"); HttpEntity<String> entity = new HttpEntity<String>(request.toString(), headers); // send request and parse result ResponseEntity<String> response = restTemplate .exchange(uri, HttpMethod.POST, entity, String.class); System.out.println(response); } When I test this code I got this error:
Exception in thread "main" org.springframework.web.client.HttpClientErrorException: 400 Bad Request when I call webservice with Curl I have correct result:
curl -X POST -H "Authorization: Basic xxxxxxxxxx" --header "Content-Type: application/json" --header "Accept: application/json" -d "{ \"name\": \"name\", \"email\": \"[email protected]\" } " "url"