ToB企服应用市场:ToB评测及商务社交产业平台

标题: RestTemplate关于https的使用详解 [打印本页]

作者: 冬雨财经    时间: 2024-12-28 21:27
标题: RestTemplate关于https的使用详解
RestTemplate关于https的使用详解

一、restTemplate注入到bean里面。

  1. @Configuration
  2. public class RestTempleConfig {
  3.    
  4.     @Bean
  5.     @Primary
  6.     public RestTemplate restTemplate() {
  7.         return new RestTemplate();
  8.     }
  9.     /**
  10.      * https 请求的 restTemplate
  11.      * @return
  12.      * @throws Exception
  13.      */
  14.     @Bean
  15.     public RestTemplate httpsRestTemplate() throws Exception {
  16.         SSLContext sslContext = SSLContext.getDefault();
  17.         HttpClient httpClient = HttpClients.custom()
  18.                 .setSSLContext(sslContext)
  19.                 .build();
  20.         HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(httpClient);
  21.         requestFactory.setConnectTimeout(5000);
  22.         requestFactory.setReadTimeout(10000);
  23.         return new RestTemplate(requestFactory);
  24.     }
  25. }
复制代码
二、restTemplate使用。

   这里以https的请求为例(http同样的使用方式,只不外依赖查找的时候配置不同)。
  不管put、 post 、 delete 、get ,都以exchange的方式统一实现。
  1.依赖注入


  1.     @Autowirer
  2.     private RestTemplate restTemplate
复制代码

  1.     @Autowired
  2.     @Qualifier("httpsRestTemplate")
  3.     private RestTemplate httpsRestTemplate
复制代码
2.方法使用

1、构造header

  1. HttpHeaders headers = new HttpHeaders();
  2. headers.add("Content-Type", "application/json");
复制代码
2、构造requestBody

  1. String body = JSON.toJSONString(BaseReq.builder()
  2.                     .build());
复制代码
3、整合请求体

  1.    HttpEntity<String> entity = new HttpEntity<String>(body, headers);
复制代码
4、定义url

   ​ get请求可以直接拼接url
  1. String url = " ";
复制代码
5、进行调用

   HttpMethod :不同的请求方式,填写不同的枚举
  BaseResp :定义好返回结果的实体,可以直接返回
  .getBody()方法: 直接返回对应的实体,否则则是返回 ResponseEntity
  1. BaseResp baseResp = httpsRestTemplate.exchange(url, HttpMethod.POST, entity, BaseResp.class).getBody();
复制代码
3、关于里面Json转化的注解

1、组装body定义的实体内,字段名大小写问题

  1. @JSONField(name = "app_secret")
  2. private String appSecret;
复制代码
2、返回的response内 ,字段名大小写问题

  1. @JsonAlias("token_type")
  2. private String tokenType;
复制代码
3、备注



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4