当前位置:网站首页>Resttemplate use
Resttemplate use
2022-07-01 06:33:00 【A small salted fish I】
List of articles
1、 Introduce dependencies
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
2、 Add the configuration
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;
/** * RestTemplate Tool class , Mainly used to provide RestTemplate object */
@Configuration// Add this annotation to , Can be Spring scanning
public class RestTemplateConfig {
@Bean
public RestTemplate restTemplate(ClientHttpRequestFactory factory){
return new RestTemplate(factory);
}
@Bean
public ClientHttpRequestFactory simpleClientHttpRequestFactory(){
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory.setReadTimeout(500000);// Unit is ms
factory.setConnectTimeout(500000);// Unit is ms
return factory;
}
}
3、 Wrapper utility class
import com.alibaba.fastjson2.JSONObject;
import com.gc.api.entity.Rest;
import com.gc.common.utils.ResultMap;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.*;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.util.UriComponentsBuilder;
import java.util.Map;
import java.util.Objects;
/** * @author sgc * @description RestTemplate Tool class * @date 2022/6/16 15:17 */
@Component
public class RestTemplateUtil {
@Autowired
protected LoginUtil loginUtil;
@Autowired
protected RestTemplate restTemplate;
/** * exchange send out post request The parameter for @requestBody Entity class application/json * * @param url Request path * @param object @requestBody Entity class * @return * @throws Exception */
public Rest exchangePostEntityReturnRest(String url, Object object) throws Exception {
// Set request header
HttpHeaders resultRequestHeader = new HttpHeaders();
resultRequestHeader.add("token", loginUtil.getToken());
resultRequestHeader.setContentType(MediaType.APPLICATION_JSON);
Map<String, Object> bean2Map = MapUtil.transBean2Map(object);
HttpEntity resultHttpEntity = new HttpEntity(bean2Map, resultRequestHeader);
ResponseEntity<Rest> result = restTemplate.exchange(url, HttpMethod.POST, resultHttpEntity, Rest.class);
if (Objects.nonNull(result.getBody())) {
return result.getBody();
}
return Rest.error(result);
}
/** * exchange send out post request The parameter for @requestBody Entity class application/json * * @param url Request path * @param object @requestBody Entity class * @return ResultMap * @throws Exception */
public ResultMap exchangePostEntityReturnResultMap(String url, Object object) throws Exception {
// Set request header
HttpHeaders resultRequestHeader = new HttpHeaders();
resultRequestHeader.add("token", loginUtil.getToken());
resultRequestHeader.setContentType(MediaType.APPLICATION_JSON);
Map<String, Object> bean2Map = MapUtil.transBean2Map(object);
HttpEntity resultHttpEntity = new HttpEntity(bean2Map, resultRequestHeader);
ResponseEntity<ResultMap> result = restTemplate.exchange(url, HttpMethod.POST, resultHttpEntity, ResultMap.class);
if (Objects.nonNull(result.getBody())) {
return result.getBody();
}
return null;
}
/** * exchange send out post request The parameter for @requestParam Of Map application/json * * @param map requestParam Parameter combined map for example : * Map<String, Object> map = new HashMap<>(); * map.put("unitGuid", unitGuid); * @return ResultMap * @throws Exception */
public ResultMap exchangePostRequestParamMapReturnResultMap(String url, Map<String, Object> map) throws Exception {
// Set request header
HttpHeaders resultRequestHeader = new HttpHeaders();
resultRequestHeader.add("token", loginUtil.getToken());
resultRequestHeader.setContentType(MediaType.APPLICATION_JSON);
HttpEntity resultHttpEntity = new HttpEntity(map, resultRequestHeader);
ResponseEntity<ResultMap> result = restTemplate.exchange(url, HttpMethod.POST, resultHttpEntity, ResultMap.class);
if (Objects.nonNull(result.getBody())) {
return result.getBody();
}
return null;
}
/** * exchange send out post request The parameter for @requestParam Parameters application/json * * @param url Request path * @param map requestParam Parameter combined map for example : * Map<String, Object> map = new HashMap<>(); * map.put("unitGuid", unitGuid); * @return Rest * @throws Exception */
public Rest exchangePostRequestParamReturnRest(String url, Map<String, Object> map) throws Exception {
// Set request header
HttpHeaders resultRequestHeader = new HttpHeaders();
resultRequestHeader.add("token", loginUtil.getToken());
// resultRequestHeader.setContentType(MediaType.APPLICATION_JSON);
String realUrl = url;
if (!map.isEmpty()) {
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url);
for (Map.Entry<String, Object> e : map.entrySet()) {
builder.queryParam(e.getKey(), e.getValue());
}
realUrl = builder.build().toString();
}
HttpEntity resultHttpEntity = new HttpEntity(null, resultRequestHeader);
ResponseEntity<Rest> result = restTemplate.exchange(realUrl, HttpMethod.POST, resultHttpEntity, Rest.class);
if (Objects.nonNull(result.getBody())) {
return result.getBody();
}
return Rest.error(result);
}
/** * exchange send out post request The parameter for @requestParam Parameters application/json * * @param url Request path * @param map requestParam Parameter combined map for example : * Map<String, Object> map = new HashMap<>(); * map.put("unitGuid", unitGuid); * @return ResultMap * @throws Exception */
public ResultMap exchangePostParamReturnResultMap(String url, Map<String, Object> map) throws Exception {
// Set request header
HttpHeaders resultRequestHeader = new HttpHeaders();
resultRequestHeader.add("token", loginUtil.getToken());
// resultRequestHeader.setContentType(MediaType.APPLICATION_JSON);
String realUrl = url;
if (!map.isEmpty()) {
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url);
for (Map.Entry<String, Object> e : map.entrySet()) {
builder.queryParam(e.getKey(), e.getValue());
}
realUrl = builder.build().toString();
}
HttpEntity resultHttpEntity = new HttpEntity(null, resultRequestHeader);
System.out.println(realUrl);
ResponseEntity<ResultMap> result = restTemplate.exchange(realUrl, HttpMethod.POST, resultHttpEntity, ResultMap.class);
if (Objects.nonNull(result.getBody())) {
return result.getBody();
}
return null;
}
/** * exchange send out get request The input parameter is an entity class application/json * * @param url Request path * @param object Entity class * @return Rest * @throws Exception */
public Rest exchangeGetEntityReturnRest(String url, Object object) throws Exception {
// Set request header
HttpHeaders headers = new HttpHeaders();
headers.add("token", loginUtil.getToken());
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url);
Map<String, Object> map = MapUtil.transBean2Map(object);
if (!map.isEmpty()) {
for (Map.Entry<String, Object> e : map.entrySet()) {
builder.queryParam(e.getKey(), e.getValue());
}
String realUrl = builder.build().toString(); // Splice the real request address here "?pageNo=1&pageSize=5"
HttpEntity<JSONObject> httpEntity = new HttpEntity<>(null, headers);
ResponseEntity<Rest> result = restTemplate.exchange(realUrl, HttpMethod.GET, httpEntity, Rest.class, map);
if (Objects.nonNull(result.getBody())) {
return result.getBody();
}
return Rest.error(result);
}
return Rest.error();
}
/** * exchange send out get request The input parameter is not marked @requestParam Parameters of ( Don't pass it on ) application/json * * @param url Request path * @param map param Parameter combined map for example : * Map<String, Object> map = new HashMap<>(); * map.put("unitGuid", unitGuid); * @return Rest * @throws Exception */
public Rest exchangeGetParamReturnRest(String url,Map<String,Object> map) throws Exception {
return exchangeGetRequestParamReturnRest(url,map);
}
/** * exchange send out get request Input parameters are marked @requestParam Parameters of application/json * * @param url Request path * @param map param Parameter combined map for example : * Map<String, Object> map = new HashMap<>(); * map.put("unitGuid", unitGuid); * @return Rest * @throws Exception */
public Rest exchangeGetRequestParamReturnRest(String url,Map<String,Object> map) throws Exception {
// Set request header
HttpHeaders headers = new HttpHeaders();
headers.add("token", loginUtil.getToken());
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url);
for (Map.Entry<String, Object> e : map.entrySet()) {
builder.queryParam(e.getKey(), e.getValue());
}
String realUrl = builder.build().toString(); // Splice the real request address here "?pageNo=1&pageSize=5"
System.out.println("realUrl==>"+realUrl);
HttpEntity<JSONObject> httpEntity = new HttpEntity<>(null, headers);
ResponseEntity<Rest> result = restTemplate.exchange(realUrl, HttpMethod.GET, httpEntity, Rest.class, map);
if (Objects.nonNull(result.getBody())) {
return result.getBody();
}
return Rest.error(result);
}
/** * exchange send out post request The input parameter is not marked @requestParam Parameters of application/json * * @param url Request path * @param map param Parameter combined map for example : * Map<String, Object> map = new HashMap<>(); * map.put("unitGuid", unitGuid); * @return Rest * @throws Exception */
public Rest exchangePostParamReturnRest(String url, Map<String, Object> map) throws Exception {
// Set request header
HttpHeaders resultRequestHeader = new HttpHeaders();
resultRequestHeader.add("token", loginUtil.getToken());
resultRequestHeader.setContentType(MediaType.APPLICATION_JSON);
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url);
for (Map.Entry<String, Object> e : map.entrySet()) {
builder.queryParam(e.getKey(), e.getValue());
}
String realUrl = builder.build().toString();
HttpEntity resultHttpEntity = new HttpEntity(null, resultRequestHeader);
ResponseEntity<Rest> result = restTemplate.exchange(realUrl, HttpMethod.POST, resultHttpEntity, Rest.class);
if (Objects.nonNull(result.getBody())) {
return result.getBody();
}
return Rest.error(result);
}
/** * exchange send out post request Input parameters are marked @requestParam Of map Parameters application/json * * @param url Request path * @param map param Parameter combined map for example : * Map<String, Object> map = new HashMap<>(); * map.put("unitGuid", unitGuid); * @return ResultMap * @throws Exception */
public ResultMap exchangePostRequestMapReturnResultMap(String url, Map<String, Object> map) throws Exception {
// Set request header
HttpHeaders resultRequestHeader = new HttpHeaders();
resultRequestHeader.add("token", loginUtil.getToken());
resultRequestHeader.setContentType(MediaType.APPLICATION_JSON);
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url);
for (Map.Entry<String, Object> e : map.entrySet()) {
builder.queryParam(e.getKey(), e.getValue());
}
String realUrl = builder.build().toString();
HttpEntity resultHttpEntity = new HttpEntity(null, resultRequestHeader);
ResponseEntity<ResultMap> result = restTemplate.exchange(realUrl, HttpMethod.POST, resultHttpEntity, ResultMap.class);
if (Objects.nonNull(result.getBody())) {
return result.getBody();
}
return null;
}
}
边栏推荐
- Picture server project test
- Requests module (requests)
- What are the functions of LAN monitoring software
- Is the account opening of Huafu securities safe and reliable? How to open Huafu securities account
- 虚幻 简单的屏幕雨滴后处理效果
- 存储函数学习笔记
- Record MySQL troubleshooting caused by disk sector damage
- Internet worm
- 数据库笔记
- Lxml module (data extraction)
猜你喜欢
随机推荐
数据库笔记
SystemVerilog learning-08-random constraints and thread control
异常检测方法梳理,看这篇就够了!
Is the account opening of Huafu securities safe and reliable? How to open Huafu securities account
Record MySQL troubleshooting caused by disk sector damage
Redis安装到Windows系统上的详细步骤
嵌入式系统
sql中TCL语句(事务控制语句)
SQL语句
Embedded system
C语言课设职工信息管理系统(大作业)
lxml模块(数据提取)
High order binary search tree
mysql数据类型学习笔记
C language course set up library information management system (big homework)
C language course set up student elective course system (big homework)
网络爬虫
C#如何打印输出原版数组
[wechat applet] view container and basic content components
基金定投是高风险产品吗?



![[network security tool] what is the use of USB control software](/img/cc/20fc1f35c139c52c5922727368b835.png)


![[unity shader custom material panel part II]](/img/d1/8632ae680299a27b7431b2d6e03fd3.png)


