注入配置xml:
<!-- 配置RestTemplate -->
<!--Http client Factory-->
<bean id="httpClientFactory" class="org.springframework.http.client.SimpleClientHttpRequestFactory">
<property name="connectTimeout" value="5000"/>
<property name="readTimeout" value="35000"/>
</bean>
<!--RestTemplate-->
<bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
<constructor-arg ref="httpClientFactory"/>
</bean>
@Autowired
private RestTemplate restTemplate;
GET请求:
参数设置:
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url);
for (Map.Entry<String, Object> map : params.entrySet()) {
builder.queryParam(map.getKey(), map.getValue());
}
其中params为map结构传入的参数。
调用方法:restTemplate.getForObject(builder.build().toString(), responseType, params);
builder.build().toString()为上面参数设置字符串
responseType为class,返回数据类型class
params为传入的map参数
POST请求:
参数设置:
HttpHeaders headers = new HttpHeaders();
MultiValueMap<String, String> map= new LinkedMultiValueMap<String, String>();
for (Map.Entry<String,String> entry : params.entrySet()) {
map.add(entry.getKey(), entry.getValue());
}
使用MultiValueMap 其中params为map结构传入参数。
headers为头文件,我使用中暂未设置过
封装httpEntity:
HttpEntity<MultiValueMap<String, String>> httpEntity = new HttpEntity<MultiValueMap<String, String>>(map, headers);
调用方法
ResultMsg resultMsg = (ResultMsg) restTemplate.postForObject(url, httpEntity, responseType);
url:请求地址
responseType:返回数据类型class
PUT请求:
参数设置:
HttpHeaders headers = new HttpHeaders();
MultiValueMap<String, String> map= new LinkedMultiValueMap<String, String>();
for (Map.Entry<String,String> entry : params.entrySet()) {
map.add(entry.getKey(), entry.getValue());
}
使用MultiValueMap 其中params为map结构传入参数。
headers为头文件,我使用中暂未设置过
封装httpEntity:
HttpEntity<MultiValueMap<String, String>> httpEntity = new HttpEntity<MultiValueMap<String, String>>(map, headers);
调用方法:
restTemplate.exchange(url, HttpMethod.PUT,httpEntity, responseType);
url:请求地址
HttpMethod.PUT:请求方式为PUT
responseType:返回数据类型class