当前位置: 首页 > news >正文

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时,注意配置文件的设置和请求头的添加方式。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C++ 类型转换 包括C风格的转换、static_cast、const_cast、reinterpret_cast、dynamic_cast、模板特化等
  • opencv - py_calib3d - py_calibration 相机校准
  • git是什么?git和svn的区别。git的一些命令
  • 杰发科技Bootloader(2)—— 基于7840的Keil配置地址
  • Redis的五种数据类型与命令
  • 【教程】Node.js+Apache 部署网页全过程(非常详细!)
  • Knowledge Editing for Large Language Models: A Survey
  • 通信原理-思科实验三:无线局域网实验
  • 【使用 Pytest 记录日志文件并确保测试用例正常执行】
  • python实现盲反卷积算法
  • 2024最新网络安全自学路线,内容涵盖3-5年技能提升
  • Ubuntu 22.04.4 LTS (linux) GoAccess 分析 Nginx 日志
  • 如何学习自动驾驶仿真与算法优化 前后端开发
  • 深入理解Prompt工程
  • GO集成方式、Java文字识别接口集成方法
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • 2017-08-04 前端日报
  • 78. Subsets
  • ES6--对象的扩展
  • javascript从右向左截取指定位数字符的3种方法
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • Protobuf3语言指南
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • Zepto.js源码学习之二
  • 创建一个Struts2项目maven 方式
  • 浮动相关
  • 看域名解析域名安全对SEO的影响
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • ​香农与信息论三大定律
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • # 安徽锐锋科技IDMS系统简介
  • #数学建模# 线性规划问题的Matlab求解
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (PySpark)RDD实验实战——取最大数出现的次数
  • (八)Flask之app.route装饰器函数的参数
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (分布式缓存)Redis持久化
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (十八)Flink CEP 详解
  • (十六)Flask之蓝图
  • (十六)视图变换 正交投影 透视投影
  • (算法)前K大的和
  • (一)VirtualBox安装增强功能
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (译)2019年前端性能优化清单 — 下篇
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .Net Core 微服务之Consul(三)-KV存储分布式锁
  • .net mvc部分视图