首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在JSON中通过RestTemplate发送POST请求

在JSON中通过RestTemplate发送POST请求
EN

Stack Overflow用户
提问于 2010-11-02 16:29:22
回答 15查看 408.5K关注 0票数 133

我没有找到任何解决我的问题的例子,所以我想向你寻求帮助。我不能简单地使用JSON中的RestTemplate对象发送POST请求

每次我得到:

org.springframework.web.client.HttpClientErrorException: 415不支持的媒体类型

我以这种方式使用RestTemplate:

代码语言:javascript
复制
...
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);

我的错是什么?

EN

回答 15

Stack Overflow用户

发布于 2011-05-26 01:24:13

这个技巧对我很有效:

代码语言:javascript
复制
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);

HttpEntity<String> entity = new HttpEntity<String>(requestJson, headers);
ResponseEntity<String> response = restTemplate.put(url, entity);

我希望这能帮到你

票数 171
EN

Stack Overflow用户

发布于 2015-06-03 22:51:22

在尝试调试REST端点时,我遇到了这个问题。下面是一个基本的示例,它使用Spring的RestTemplate类来发出我使用的POST请求。我花了相当长的时间把不同地方的代码拼凑在一起,得到一个工作版本。

代码语言:javascript
复制
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字符串中转义了双引号。

票数 104
EN

Stack Overflow用户

发布于 2014-11-24 21:54:38

我一直在JSONObjects中使用rest模板,如下所示:

代码语言:javascript
复制
// 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
}
票数 88
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4075991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档