发送Http请求的两种方式
说明:在项目中,我们有时会需要调用第三方接口,获取调用结果,来实现自己的业务逻辑。调用第三方接口,通常是双方确定好,由对方开放一个接口,需要我们根据他们提供的接口文档,组装Http请求的请求头(一般是秘钥,以便通过他们的校验),请求体(相关数据),在代码里主动发送一个Http请求,本文介绍在Spring Boot项目中发送Http请求的两种方式。
这里我以下面这个接口为例,该接口是一个公开的API(官网地址:https://www.mxnzp.com/doc/detail?id=35),可免费申请app_id、app_secret调用该接口,作用是根据传入的成语,返回该成语的拼音、解释、出处等信息。
接着,我们来试下在代码中如何调用。
方式一:RestTemplate
方式一是使用RestTemplate,如下:
/*** 方式一:通过restTemplate发送Http请求*/@Testpublic void sendHttp() {// 创建RestTemplate对象RestTemplate restTemplate = new RestTemplate();// 请求地址String url = "https://www.mxnzp.com/api/idiom/search";// 请求参数String key = "key=一心一意";// 发送请求Map result = restTemplate.getForObject(url + "?" + key + "&" + APP_ID + "&" + APP_SECRET, Map.class);// 打印结果System.out.println(result.get("data"));}
如果是POST请求,可以用下面这种方式发送(以下代码是WeTab AI生成的,仅供参考,博主没试过)
// 创建RestTemplate实例RestTemplate restTemplate = new RestTemplate();// 设置请求URLString url = "https://api.example.com/data";// 设置请求头HttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.APPLICATION_JSON);// 设置请求体参数String requestBody = "{\"param1\":\"value1\",\"param2\":\"value2\"}";// 创建HttpEntity对象,并将请求头和请求体参数传递进去HttpEntity<String> requestEntity = new HttpEntity<>(requestBody, headers);// 发送POST请求并获取响应String response = restTemplate.postForObject(url, requestEntity, String.class);// 打印响应System.out.println(response);
方式二:使用Hutool工具包
可以使用Hutool中的API,如下:
// 请求地址String url = "https://www.mxnzp.com/api/idiom/search";// 请求参数String key = "key=一心一意";// 发送请求String result = HttpUtil.get(url + "?" + key + "&" + APP_ID + "&" + APP_SECRET);// 打印结果System.out.println(result);
如果是POST请求,可以使用对应的post方法,传入一个Map类型的数据,返回的也是String类型
另外可在后面设置一个int类型的数据,设置超时时间,单位毫秒
总结
本文总结了Spring Boot项目中发送Http请求的两种方式,参考下面这篇文章:
- SpringBoot项目模块间通信的两种方式
相关文章:

发送Http请求的两种方式
说明:在项目中,我们有时会需要调用第三方接口,获取调用结果,来实现自己的业务逻辑。调用第三方接口,通常是双方确定好,由对方开放一个接口,需要我们根据他们提供的接口文档,组装Http…...

【算法训练记录——Day23】
Day23——二叉树Ⅸ 669.修剪二叉搜索树108.将有序数组转换为二叉搜索树538.把二叉搜索树转换为累加树 今日内容: ● 669.修剪二叉搜索树 ● 108.将有序数组转换为二叉搜索树 ● 538.把二叉搜索树转换为累加树 ● 总结篇 669.修剪二叉搜索树 思路:主要是…...

【wiki知识库】04.SpringBoot后端实现电子书的增删改查以及前端界面的展示
📝个人主页:哈__ 期待您的关注 目录 一、🔥今日内容 二、🌏前端页面的改造 2.1新增电子书管理页面 2.2新增路由规则 2.3修改the-header代码 三、🚗SpringBoot后端Ebook模块改造 3.1增加电子书增/改接口 3.1.…...

NTLM Relay Gat:自动化NTLM中继安全检测工具
关于NTLM Relay Gat NTLM Relay Gat是一款功能强大的NTLM中继威胁检测工具,该工具旨在利用Impacket工具套件中的ntlmrelayx.py脚本在目标环境中实现NTLM中继攻击风险检测,以帮助研究人员确定目标环境是否能够抵御NTLM中继攻击。 功能介绍 1、多线程支持…...

摸鱼大数据——Hive函数14
14、开窗(开列)函数 官网链接:Window Functions - Apache AsterixDB - Apache Software Foundation 14.1 基础使用 开窗函数格式: 开窗函数 over(partition by 分组字段名 [order by 排序字段名 asc|desc] [rows between 开窗开始 and 开窗结束]) partition b…...
elasticsearch的常规操作--增删改查和批量处理
1、_cat 查询 GET /_cat/nodes: 查看所有节点 GET /_cat/health: 查看es 健康状况 GET /_cat/master: 查看主节点 GET /_cat/indices:查看所有索引show databases; 2、索引一个文档(保存) 保存一个数据&…...

盘点2024年还在活跃发版的开源私有网盘项目附源码链接
时不时的会有客户上门咨询,丰盘ECM是不是开源项目,源码在哪里可以下载;如果需要和内部其他系统做集成,购买商业版的话,能否提供源代码做二次开发呢,等等诸多问题。 这里做个统一回复,丰盘ECM产…...

MySQL 使用方法以及教程
一、引言 MySQL是一个流行的开源关系型数据库管理系统(RDBMS),广泛应用于Web开发、数据分析等领域。它提供了高效、稳定的数据存储和查询功能。同时,Python作为一种强大的编程语言,也提供了多种与MySQL交互的库&#…...
算法学习笔记——二进制
二进制 负数的十进制转二进制数(-2 -> 1110): 正数 - 1,再取反,得到负数的二进制。 例如:-2 :0010 -> 0010 - 1 -> 0001 -> 取反 -> 1110 负数的二进制转十进制(…...

计算机网络介绍
计算机网络介绍 概述网络概述相关硬件 链路层VLAN概念VLAN 特点VLAN 的划分帧格式端口类型原理 STP概念特点原理 Smart Link概念特点组网 网络层ARP概念原理 IP概念版本IP 地址 IPv4IP 地址数据报格式 IPv6特点IP 地址数据报格式 ICMP概念分类报文格式 VRRP概念原理报文格式 OS…...

解锁数据宝藏:高效查找算法揭秘
代码下载链接:https://gitee.com/flying-wolf-loves-learning/data-structure.git 目录 一、查找的原理 1.1 查找概念 1.2 查找方法 1.3平均查找长度 1.4顺序表的查找 1.5 顺序表的查找算法及分析 1.6 折半查找算法及分析 1.7 分块查找算法及分析 1.8 总结…...

利用EasyCVR视频智能监控技术,构建智慧化考场监管体系
随着科技的进步,视频监控在各个领域的应用越来越广泛,其中在考场中的应用尤为显著。视频监控不仅能够提高考场的监管水平,确保考试的公平、公正和公开,还能有效预防和打击作弊行为,为考生营造一个良好的考试环境。 传…...

深度解析:速卖通618风控下自养号测评的技术要点
速卖通每年的618大促活动平台的风控都会做升级,那相对的测评技术也需要进行相应的做升级,速卖通618风控升级后,自养号测评需要注意以下技术问题,以确保测评 的稳定性和安全性: 一、物理环境 1. 硬件参数伪装&#x…...
国产算力——沐曦GPU性能及应用
沐曦集成电路(上海)有限公司(简称“沐曦”)成立于2020年9月,专注于为异构计算提供全栈GPU芯片及解决方案,满足数据中心对“高性能”、“高能效”及“高通用性”的算力需求。 产品系列 沐曦构建了全栈高性…...

贪心算法拓展(反悔贪心)
相信大家对贪心算法已经见怪不怪了,但是一旦我们的决策条件会随着我们的步骤变化,我们该怎么办呢?有没有什么方法可以反悔呢? 今天就来讲可以后悔的贪心算法,反悔贪心。 https://www.luogu.com.cn/problem/CF865Dhttp…...
在spring框架的基础上自定义autowired注解
在Spring框架的基础上自定义Autowired注解是不可能的,因为注解本身是Java语言的一部分,并且Autowired是Spring框架提供的注解,用于实现自动装配。但是,你可以创建自己的注解,并结合Spring框架的扩展机制来实现类似的功…...
2005NOIP普及组真题 3. 采药
线上OJ: [05NOIP普及组] 采药 核心思想: 1、题与 2006 年普及组第2题《开心的金明》一样,考察的都是01背包。 2、直接套用01背包的一阶模板即可 a、限定时间看成背包总容量m b、每件物品的采药时间 v 看成占用背包的体积 c、每件物品的价格w作为该物品的…...
preventDefault()与stopPropagation()有什么区别?
1、event.preventDefault()方法 (1)可防止元素的默认行为 (2)如果在表单元素中使用,它将阻止其提交 (3)如果在锚元素中使用,它将阻止其导航 (4)如果在上下…...
AIGC 全面介绍
随着人工智能技术的不断进步,生成式人工智能(AI Generated Content, AIGC)成为了一个日益热门的话题。AIGC 指利用人工智能技术生成各类内容,包括文本、图像、音频、视频等。与传统的内容生成方法相比,AIGC 具有速度快…...

网站入门:Flask用法讲解
Flask是一个使用Python编写的轻量级Web服务框架,旨在帮助开发人员快速构建和部署Web应用程序。下面将对Flask进行更为详细的解释说明,并展示其使用示例与注意事项: 1.解释说明 定义及特点: Flask以其简洁和灵活著称,允许开发者以…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...

ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...

人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...