RestTemplate关于https的使用详解

打印 上一主题 下一主题

主题 800|帖子 800|积分 2400

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.依赖注入



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


  • https:
  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、备注



  • 假如照旧有问题,转化不了json的话,可以实验直接返回 String.class
  • 然后使用 JSON.parseObject 进行转化
  • 留意好每一步的判空操作

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

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

冬雨财经

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表