最近发现resttemplate 很便捷,但是在使用过程中还是有一些误解。
直接用concroller 传过来的dto 作为rest的参数报错;
<pre name="code" class="java">RegisterDto registerDto = new RegisterDto();
registerDto.setLicense("京B6666");
registerDto.setStoresId("567865443");
registerDto.setRealName("张晓");
registerDto.setRegimentalCommander("5544");
registerDto.setTcName("5544");
registerDto.setMobile("1231231231");
RestTemplate restTemplate = new RestTemplate();
T result = restTemplate.postForObject(url, registerDto, String.class);
最后查了好多资料发现需要 dto 放到HttpEntity里才可以正常:
<span style="font-family: Arial, Helvetica, sans-serif;"> HttpHeaders headers = new HttpHeaders();</span>
MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
headers.setContentType(type);
headers.add("Accept", MediaType.APPLICATION_JSON.toString());
HttpEntity<String> formEntity = new HttpEntity<String>(jsonObj.toString(), headers);
T result = restTemplate.postForObject(url, formEntity, String.class);
还是对rest 的原理缺少研究。