2017-05-04 218 views
0

我用下面的代码来调用一个REST的Web API,春季启动RestTemplate:错误415不支持的媒体类型

WebTarget target = client.target(CommonConfig.getProperty(APIX_SEND_EMAIL_URL)); 
Response response = target.request("application/json").accept(MediaType.APPLICATION_JSON_TYPE).header("Authorization", token) 
       .post(Entity.json(email)); 

现在我想用Spring引导RestTemplate调用这个Web服务,而我用下面代码:

HttpHeaders headers = new HttpHeaders(); 
headers.setContentType(MediaType.APPLICATION_JSON); 
List<MediaType> mediaList = new ArrayList<MediaType>(); 
mediaList.add(MediaType.APPLICATION_JSON); 
mediaList.add(MediaType.TEXT_PLAIN); 
headers.setAccept(mediaList); 
//Json is the json object of the request data 
HttpEntity<String> entity = new HttpEntity<String>(json.toString(), headers); 

ResponseEntity<String> loginResponse = restTemplate 
        .exchange(url, HttpMethod.POST, entity, String.class); 

,但我得到的错误415不支持的媒体类型。任何人都可以帮助我理解错误的原因,我如何使用RestTemplate修复它?

回答

0

为什么不使用RestTemplate的postForObject()方法?

SomeObject json = SomeObject(); 
SomeOtherObject response = restTemplate.postForObject("url", json , SomeOtherObject.class); 
相关问题