時念
首页
  • 前端文章

    • JavaScript
    • Vue
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《TypeScript 从零实现 axios》
    • 小程序笔记
    • JavaScript 基础
  • 后端笔记

    • Java
    • Spring
    • 算法
    • 高可用
    • 高并发
  • 工作问题

    • 问题记录
  • 各类工具使用
  • GitHub技巧
  • 博客搭建
  • 面试题库

    • 零碎
    • 面试常见题目汇总
  • 面试心得

    • 面试集锦
    • 杂言碎语
  • 摘抄收录

    • ☆ 励志鸡汤
    • ❀ 人间烟火
    • ☣ 万物沦丧
    • ✌ 关掉烦恼
    • ✲ 小酒馆
  • 读书笔记

    • 《小狗钱钱》
    • 《穷爸爸富爸爸》
    • 《聪明人使用方格笔记本》
  • 学习
  • 心情杂货
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub

時念

一个有梦想的后端小菜鸡(✪ω✪)
首页
  • 前端文章

    • JavaScript
    • Vue
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《TypeScript 从零实现 axios》
    • 小程序笔记
    • JavaScript 基础
  • 后端笔记

    • Java
    • Spring
    • 算法
    • 高可用
    • 高并发
  • 工作问题

    • 问题记录
  • 各类工具使用
  • GitHub技巧
  • 博客搭建
  • 面试题库

    • 零碎
    • 面试常见题目汇总
  • 面试心得

    • 面试集锦
    • 杂言碎语
  • 摘抄收录

    • ☆ 励志鸡汤
    • ❀ 人间烟火
    • ☣ 万物沦丧
    • ✌ 关掉烦恼
    • ✲ 小酒馆
  • 读书笔记

    • 《小狗钱钱》
    • 《穷爸爸富爸爸》
    • 《聪明人使用方格笔记本》
  • 学习
  • 心情杂货
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub
  • java

  • spring

  • 问题记录

    • 工作问题记录
    • RestTemplate的使用
      • 一、restTemplate注入到bean里面。
      • 二、restTemplate使用。
        • 1.依赖注入
        • 2.方法使用
        • 3、关于里面Json转化的注解
    • Java 8 Optional 类
    • MySQl常用日期操作函数
  • 算法

  • 高可用

  • 后端
  • 问题记录
時念
2023-04-10

RestTemplate的使用

# RestTemplate的使用

# 一、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);
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

# 二、restTemplate使用。

这里以https的请求为例(http同样的使用方式,只不过依赖查找的时候配置不同)。

不管put、 post 、 delete 、get ,都以exchange的方式统一实现。

# 1.依赖注入

  • http:
    @Autowirer
    private RestTemplate restTemplate
1
2
  • https:
    @Autowired
    @Qualifier("httpsRestTemplate")
    private RestTemplate httpsRestTemplate
1
2
3

# 2.方法使用

# 1、构造header

 HttpHeaders headers = new HttpHeaders();
 headers.add("Content-Type", "application/json");
1
2

# 2、构造requestBody

 String body = JSON.toJSONString(BaseReq.builder()
                    .build());
1
2

# 3、整合请求体

   HttpEntity<String> entity = new HttpEntity<String>(body, headers);
1

# 4、定义url

​ get请求可以直接拼接url

String url = " ";
1

# 5、进行调用

HttpMethod :不同的请求方式,填写不同的枚举

BaseResp :定义好返回结果的实体,可以直接返回

.getBody()方法: 直接返回对应的实体,否则则是返回 ResponseEntity

 BaseResp baseResp = httpsRestTemplate.exchange(url, HttpMethod.POST, entity, BaseResp.class).getBody();
1

# 3、关于里面Json转化的注解

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

 @JSONField(name = "app_secret")
 private String appSecret;
1
2

# 2、返回的response内 ,字段名大小写问题

@JsonAlias("token_type")
private String tokenType;
1
2

# 3、备注

  • 如果还是有问题,转化不了json的话,可以尝试直接返回 String.class
  • 然后利用 JSON.parseObject 进行转化
  • 注意好每一步的判空操作
编辑
上次更新: 2024/03/26, 9:03:00
工作问题记录
Java 8 Optional 类

← 工作问题记录 Java 8 Optional 类 →

最近更新
01
database-shard-dynamic-expand
03-26
02
README
03-26
03
database-shard-global-id-generate
03-26
更多文章>
Theme by Vdoing | Copyright © 2019-2024 時念 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式