我没有找到任何解决我的问题的例子,所以我想向你寻求帮助。我不能简单地使用JSON中的RestTemplate对象发送POST请求
每次我得到:
org.springframework.web.client.HttpClientErrorException: 415不支持的媒体类型
我以这种方式使用RestTemplate:
...
restTemplate = new RestTemplate();
List<HttpMessageConverter<?>> list = new ArrayList<HttpMessageConverter<?>>();
list.add(new MappingJacksonHttpMessageConverter());
restTemplate.setMessageConverters(list);
...
Payment payment= new Payment("Aa4bhs");
Payment res = restTemplate.postForObject("http://localhost:8080/aurest/rest/payment", payment, Payment.class);
我的错是什么?
发布于 2011-05-26 01:24:13
这个技巧对我很有效:
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> entity = new HttpEntity<String>(requestJson, headers);
ResponseEntity<String> response = restTemplate.put(url, entity);
我希望这能帮到你
发布于 2015-06-03 22:51:22
在尝试调试REST端点时,我遇到了这个问题。下面是一个基本的示例,它使用Spring的RestTemplate类来发出我使用的POST请求。我花了相当长的时间把不同地方的代码拼凑在一起,得到一个工作版本。
RestTemplate restTemplate = new RestTemplate();
String url = "endpoint url";
String requestJson = "{\"queriedQuestion\":\"Is there pain in your hand?\"}";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> entity = new HttpEntity<String>(requestJson,headers);
String answer = restTemplate.postForObject(url, entity, String.class);
System.out.println(answer);
对于特定的JSON解析器,我的rest端点在字段名两边使用了所需的双引号,这就是为什么我在requestJson字符串中转义了双引号。
发布于 2014-11-24 21:54:38
我一直在JSONObjects中使用rest模板,如下所示:
// create request body
JSONObject request = new JSONObject();
request.put("username", name);
request.put("password", password);
// set headers
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> entity = new HttpEntity<String>(request.toString(), headers);
// send request and parse result
ResponseEntity<String> loginResponse = restTemplate
.exchange(urlString, HttpMethod.POST, entity, String.class);
if (loginResponse.getStatusCode() == HttpStatus.OK) {
JSONObject userJson = new JSONObject(loginResponse.getBody());
} else if (loginResponse.getStatusCode() == HttpStatus.UNAUTHORIZED) {
// nono... bad credentials
}
https://stackoverflow.com/questions/4075991
复制相似问题