SpringBoot 调用外部接口的三种方式

1. 简介
  • SpringBoot 简化了Spring应用的搭建和开发,支持访问外部模块接口或URL。
  • 需求场景 如apaas开发中封装接口调用外部服务。
2. 方式一:使用原始httpClient请求
  • 实现 通过get方式获取参数,发起流程。
  • 关键代码
    • 将数据转换为JSON格式。
    • 使用CloseableHttpClient创建HTTP请求。
    • 设置请求体、内容类型、编码和认证Token。
    • 发送请求并处理响应。
3. 方式二:使用RestTemplate方法
  • Get请求
    • getForEntity:使用URI对象指定地址和参数绑定。
    • getForObject:封装了getForEntity,直接返回对象。
  • Post请求
    • postForEntity:发送POST请求,设置请求头和请求体。
    • 重载方式包括URL和响应类型,或添加URI和请求体。
4. 方式三:使用Feign进行消费
  • 依赖添加 添加spring-cloud-starter-feign依赖。
  • 启动类配置 使用@EnableFeignClients注解。
  • 接口模拟 定义controller、service和serviceImpl模拟外部接口。
  • FeignClient定义
    • 使用@FeignClient注解定义服务接口。
    • 通过@RequestMapping指定请求映射。
5. Feign请求头添加
  • 实现方式 通过实现RequestInterceptor接口重写apply方法。
  • 示例 添加Token到Feign请求头。
6. Postman测试
  • 说明 使用Postman测试接口,需要添加请求头等信息。

注意事项

  • 使用原始httpClient时,注意异常处理和资源关闭。
  • 使用RestTemplate时,了解不同方法的适用场景和参数绑定方式。
  • 使用Feign时,注意配置文件的设置和请求头的添加方式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/50746.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windosw下Visual Studio2022编译FFmpeg(支持x264、x265、fdk-acc)

FFmpeg 7.0 版本移除了 6.0 之前已弃用的 API,无法向下兼容。所以编译的版本选择FFmpeg 6.1.1。 一、安装Visual Studio2022 可参考另外一篇文章:Windows安装Visual Studio2022 QT5.15开发环境_qt5.15.2 vs2022-CSDN博客 二、安装MSYS2 下载地址&…

lua 游戏架构 之 游戏 AI (四)ai_autofight_find_target

定义一个名为 ai_autofight_find_target 的类,继承自 ai_base 类。 lua 游戏架构 之 游戏 AI (一)ai_base-CSDN博客文章浏览阅读237次。定义了一套接口和属性,可以基于这个基础类派生出具有特定行为的AI组件。例如,可…

nfs、web与dns结合练习

1.搭建一个nfs服务器,客户端可以从该服务器的/share目录上传并下载文件 #服务端 1. 下载rpcbind和nfs-utils [root128 ~]# yum install rpcbind [root128 ~]# yum install nfs-utils2. 创建共享目录 [root128 ~]# mkdir /share3.编辑配置 [root128 ~]# vim /etc/ex…

大数据-50 Redis 分布式锁 乐观锁 Watch SETNX Lua Redisson分布式锁 Java实现分布式锁

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

Docker+consul容器服务的更新与发现

1、Consul概述 (1)什么是服务注册与发现 服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问。直到后来出现了多个节点…

Spark实时(三):Structured Streaming入门案例

文章目录 Structured Streaming入门案例 一、Scala代码如下 二、Java 代码如下 三、以上代码注意点如下 Structured Streaming入门案例 我们使用Structured Streaming来监控socket数据统计WordCount。这里我们使用Spark版本为3.4.3版本,首先在Maven pom文件中导…

在 Spring Boot 中使用 Filters 实现请求过滤和预处理

​ 博客主页: 南来_北往 系列专栏:Spring Boot实战 什么是过滤器 过滤器(Filter)是一种在Web应用中用于拦截和处理HTTP请求和响应的对象。 在Java Web开发中,过滤器是实现特定功能,如认证、日志记录和字符编码处…

X-AnyLabeling标注软件使用方法

第一步 下载 官方X-AnyLabeling下载地址 github:X-AnyLabeling 第二步 配置环境 使用conda创建新的虚拟环境 conda create -n xanylabel python3.8进入环境 conda activate xanylabel进入X-AnyLabeling文件夹内,运行下面内容 依赖文件系统环境运行环…

MyBatisPlus复习

目录 自定义sql swagger工具 IService批量新增 代码生成器 DB静态工具,hutool工具 逻辑删除 枚举处理器 Json处理器 分页 自定义sql swagger工具 IService批量新增 代码生成器 DB静态工具,hutool工具 逻辑删除 枚举处理器 Json处理器 分页

ks滑块验证码逆向分析与python识别

文章目录 1. 写在前面3. 接口分析3. 算法实现 【🏠作者主页】:吴秋霖 【💼作者介绍】:擅长爬虫与JS加密逆向分析!Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致力于Python…

大模型技术:发展历程、经典模型、微调与应用[更新中...]

文章目录 一、预训练语言模型发展历程二、经典的Pre-trained任务2.1 Masked Language Modeling2.2 Next Sentence Prediction 三、Task-specific Fine-tuning 任务3.1 Single-text Classification (单句分类)3.2 Sentence-pair Classification (句子匹配/成对分类)3.3 Span Tex…

谷粒商城实战笔记-71-商品服务-API-属性分组-前端组件抽取父子组件交互

文章目录 一,一次性创建所有的菜单二,开发属性分组界面1,左侧三级分类树形组件2,右侧分组列表3,左右两部分通信3.1 子组件发送数据3.2,父组件接收数据 Vue的父子组件通信父组件向子组件传递数据子组件向父组…

vector的相关内容介绍及模拟实现

一.内容介绍 1.vector是一个模板,不支持流插入和流提取,因为它支持多种方式的输出,不需要局限于流提取的方式 2.关于vector所涉及的函数接口与string类的用法类似,有兴趣可参考小编的另一篇博客 3.vector的迭代器失效问题 1&g…

后端面试题日常练-day08 【Java基础】

题目 希望这些选择题能够帮助您进行后端面试的准备,答案在文末 Java中的静态变量和实例变量有何区别? a) 静态变量属于类,实例变量属于对象 b) 静态变量只能在静态方法中访问,实例变量只能在实例方法中访问 c) 静态变量在类加载时…

【BUG】已解决:The above exception was the direct cause of the following exception:

The above exception was the direct cause of the following exception: 目录 The above exception was the direct cause of the following exception: 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c…

【杰理蓝牙开发】AC695x 音频部分

本文主要记录 杰理蓝牙audio接口的使用,包括ADC和DAC原理的介绍和API接口的使用。 【杰理蓝牙开发】AC695x 音频部分 0. 个人简介 && 授权须知1. ADC【音频数据采集】硬件部分1.1 单片机引脚1.2 硬件电路设计1.3 MIC 输入通路解释 2. 【DAC】音频信号编解码…

JVM 高级面试题及答案整理,最新面试题

JVM中的垃圾收集器有哪些,它们的工作原理是什么? JVM中的垃圾收集器主要包括以下几种: 1、 Serial收集器:它是一个单线程收集器,工作时会暂停所有其他工作线程("Stop-The-World"),它的优点是简单高效(与其他收集器的单线程比),适用于单核处理器的环境。 2…

stm32F1xx外设GPIO的用法总结

目录 前言一、概念二、主要文件三、库函数和寄存器四、几个数据结构五、使用方式 前言 本文笔记总结stm32F1xx的GPIO的寄存器说明和标准库中的函数说明、用法,使用案例; 一、概念 GPIO为通用输入输出端口的简称,作为主控芯片的一个外设在芯片中是一个…

Super 4PCS配准算法

Nicolas Mellado,CNRS(Centre national de la recherche scientifique,法国国家科学研究中心)的研究员,在IRIT(Institut de Recherche en Informatique de Toulouse,图卢兹计算机科学研究所&…

SAPUI5基础知识20 - 对话框和碎片(Dialogs and Fragments)

1. 背景 在 SAPUI5 中,Fragments 是一种轻量级的 UI 组件,类似于视图(Views),但它们没有自己的控制器(Controller)。Fragments 通常用于定义可以在多个视图中重用的 UI 片段,从而提…