【发布时间】:2016-03-06 20:19:05
【问题描述】:
我想使用 Spring RestTemplate 制作一个简单的 HTTP POST。
Wesb 服务接受 JSON 参数,例如:{"name":"mame","email":"email@gmail.com"}
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@gmail.com\" }";
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
当我使用 Curl 调用 web 服务时,我得到了正确的结果:
curl -X POST -H "Authorization: Basic xxxxxxxxxx" --header "Content-Type: application/json" --header "Accept: application/json" -d "{ \"name\": \"name\", \"email\": \"email@gmail.com\" } " "url"
【问题讨论】:
-
添加您尝试访问的 web 服务代码和正确执行的邮递员或 curl 表达式的屏幕截图...
-
我无法访问网络服务。通过使用 curl 我可以使用以下命令调用 ws: curl -X POST -H "Authorization: Basic xxxxxxxxxx" --header "Content-Type: application/json" --header "Accept: application/json" -d "{ \ “姓名\”:\“姓名\”,\“电子邮件\”:\“email@gmail.com\”}““网址”
标签: spring web-services rest spring-mvc spring-rest