RestTemplate关于https的使用详解
RestTemplate关于https的使用详解一、restTemplate注入到bean里面。
@Configuration
public class RestTempleConfig {
@Bean
@Primary
public RestTemplate restTemplate() {
return new RestTemplate();
}
/**
* https 请求的 restTemplate
* @return
* @throws Exception
*/
@Bean
public RestTemplate httpsRestTemplate() throws Exception {
SSLContext sslContext = SSLContext.getDefault();
HttpClient httpClient = HttpClients.custom()
.setSSLContext(sslContext)
.build();
HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(httpClient);
requestFactory.setConnectTimeout(5000);
requestFactory.setReadTimeout(10000);
return new RestTemplate(requestFactory);
}
}
二、restTemplate使用。
这里以https的请求为例(http同样的使用方式,只不外依赖查找的时候配置不同)。
不管put、 post 、 delete 、get ,都以exchange的方式统一实现。
1.依赖注入
[*]http:
@Autowirer
private RestTemplate restTemplate
[*]https:
@Autowired
@Qualifier("httpsRestTemplate")
private RestTemplate httpsRestTemplate
2.方法使用
1、构造header
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "application/json");
2、构造requestBody
String body = JSON.toJSONString(BaseReq.builder()
.build());
3、整合请求体
HttpEntity<String> entity = new HttpEntity<String>(body, headers);
4、定义url
get请求可以直接拼接url
String url = " ";
5、进行调用
HttpMethod :不同的请求方式,填写不同的枚举
BaseResp :定义好返回结果的实体,可以直接返回
.getBody()方法: 直接返回对应的实体,否则则是返回 ResponseEntity
BaseResp baseResp = httpsRestTemplate.exchange(url, HttpMethod.POST, entity, BaseResp.class).getBody();
3、关于里面Json转化的注解
1、组装body定义的实体内,字段名大小写问题
@JSONField(name = "app_secret")
private String appSecret;
2、返回的response内 ,字段名大小写问题
@JsonAlias("token_type")
private String tokenType;
3、备注
[*]假如照旧有问题,转化不了json的话,可以实验直接返回 String.class
[*]然后使用 JSON.parseObject 进行转化
[*]留意好每一步的判空操作
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]