我想用Spring RestTemplate做一個簡單的HTTP POST。 的WESB服務接受JSON的參數,例如:{"name":"mame","email":"[email protected]"}
在Spring Rest中使用JSON的HTTP POST
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);
}
當我測試這個代碼,我得到這個錯誤:
Exception in thread "main" org.springframework.web.client.HttpClientErrorException: 400 Bad Request
當我打電話web服務與捲曲我有正確的結果:
curl -X POST -H "Authorization: Basic xxxxxxxxxx" --header "Content-Type: application/json" --header "Accept: application/json" -d "{ \"name\": \"name\", \"email\": \"[email protected]\" } " "url"
添加你要訪問web服務代碼和郵遞員或正確執行卷曲表達的截圖...... –
I'haven't訪問web服務。通過使用curl,我可以使用以下命令調用ws:curl -X POST -H「Authorization:Basic xxxxxxxxxx」--header「Content-Type:application/json」--header「Accept:application/json」-d「{\ 「name \」:\「name \」,\「email \」:\「[email protected] \」} 「」url「 –