RestTemplate真实案例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

RestTemplate真实案例

1. 场景描述

现在越来越的系统之间的交互采⽤http+json的交互⽅式,以前⽤的⽐较多的HttpClient,后来⽤的RestTemplate,感觉RestTemplate要⽐httpClent简洁的多,简单介绍下,项⽬中正在使⽤的get和post调⽤⽅式。

2. 解决⽅案

2.1 简要说明

RestTemplate是集成在spring-web中的,因为springboot的starter已经默认加载进来,所以可以直接使⽤不⽤再配置maven的gav了。

2.2 post调⽤⽅式

2.2.1 真实代码

public static String invoke(String url, HashMap params) throws Exception {

HttpHeaders headers = new HttpHeaders();

headers.setContentType(MediaType.parseMediaType("application/json; charset=UTF-8"));

headers.add("Accept", MediaType.APPLICATION_JSON.toString());

HttpEntity<String> httpEntity = new HttpEntity<>(JSONObject.toJSONString(params), headers);

RestTemplate rst = new RestTemplate();

ResponseEntity<String> stringResponseEntity = rst.postForEntity(url, httpEntity, String.class);

return stringResponseEntity.getBody();

}

2.2.2 代码说明

invoke是通⽤⽅法调⽤,项⽬中的⼊参是:url和map,url是调⽤地址,写在配置⽂件中;map是外围系统需要的参数,在相关类中进⾏封装后传过来。

2.3 get调⽤⽅式

2.3.1真实代码

public JSONArray getUsers() throws Exception {

JSONArray result = new JSONArray();

try {

RestTemplate restTemplate = new RestTemplate();

result = restTemplate.getForObject(apiUrl + "/user/list?appCode={1}",

JSONArray.class, code);

} catch (Exception e) {

}

return result;

}

2.3.2 代码说明

其中参数是:url和code,根据code去查询对应集合。

2.4 RestTemplate Api说明

DELETE delete

GET getForObject

getForEntity

HEAD headForHeaders

OPTIONS optionsForAllow

POST postForLocation

postForObject

postForEntity

PUT put

any exchange

execute

⼀般只需记住get与post的五个就可以了(getForObject 、getForEntity、postForLocation、postForObjec、postForEntity),这⼏个⽅法有很多重载的⽅法,参数不⼀样,可根据实际情况调⽤。

相关文档
最新文档