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

发送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请求的两种方式

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

【算法训练记录——Day23】

Day23——二叉树Ⅸ 669.修剪二叉搜索树108.将有序数组转换为二叉搜索树538.把二叉搜索树转换为累加树 今日内容&#xff1a; ● 669.修剪二叉搜索树 ● 108.将有序数组转换为二叉搜索树 ● 538.把二叉搜索树转换为累加树 ● 总结篇 669.修剪二叉搜索树 思路&#xff1a;主要是…...

【wiki知识库】04.SpringBoot后端实现电子书的增删改查以及前端界面的展示

&#x1f4dd;个人主页&#xff1a;哈__ 期待您的关注 目录 一、&#x1f525;今日内容 二、&#x1f30f;前端页面的改造 2.1新增电子书管理页面 2.2新增路由规则 2.3修改the-header代码 三、&#x1f697;SpringBoot后端Ebook模块改造 3.1增加电子书增/改接口 3.1.…...

NTLM Relay Gat:自动化NTLM中继安全检测工具

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

摸鱼大数据——Hive函数14

14、开窗(开列)函数 官网链接&#xff1a;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&#xff1a; 查看所有节点 GET /_cat/health&#xff1a; 查看es 健康状况 GET /_cat/master&#xff1a; 查看主节点 GET /_cat/indices&#xff1a;查看所有索引show databases; 2、索引一个文档&#xff08;保存&#xff09; 保存一个数据&…...

盘点2024年还在活跃发版的开源私有网盘项目附源码链接

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

MySQL 使用方法以及教程

一、引言 MySQL是一个流行的开源关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;广泛应用于Web开发、数据分析等领域。它提供了高效、稳定的数据存储和查询功能。同时&#xff0c;Python作为一种强大的编程语言&#xff0c;也提供了多种与MySQL交互的库&#…...

算法学习笔记——二进制

二进制 负数的十进制转二进制数&#xff08;-2 -> 1110&#xff09;&#xff1a; 正数 - 1&#xff0c;再取反&#xff0c;得到负数的二进制。 例如&#xff1a;-2 &#xff1a;0010 -> 0010 - 1 -> 0001 -> 取反 -> 1110 负数的二进制转十进制&#xff08;…...

计算机网络介绍

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

解锁数据宝藏:高效查找算法揭秘

代码下载链接&#xff1a;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视频智能监控技术,构建智慧化考场监管体系

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

深度解析:速卖通618风控下自养号测评的技术要点

速卖通每年的618大促活动平台的风控都会做升级&#xff0c;那相对的测评技术也需要进行相应的做升级&#xff0c;速卖通618风控升级后&#xff0c;自养号测评需要注意以下技术问题&#xff0c;以确保测评 的稳定性和安全性&#xff1a; 一、物理环境 1. 硬件参数伪装&#x…...

国产算力——沐曦GPU性能及应用

沐曦集成电路&#xff08;上海&#xff09;有限公司&#xff08;简称“沐曦”&#xff09;成立于2020年9月&#xff0c;专注于为异构计算提供全栈GPU芯片及解决方案&#xff0c;满足数据中心对“高性能”、“高能效”及“高通用性”的算力需求。 产品系列 沐曦构建了全栈高性…...

贪心算法拓展(反悔贪心)

相信大家对贪心算法已经见怪不怪了&#xff0c;但是一旦我们的决策条件会随着我们的步骤变化&#xff0c;我们该怎么办呢&#xff1f;有没有什么方法可以反悔呢&#xff1f; 今天就来讲可以后悔的贪心算法&#xff0c;反悔贪心。 https://www.luogu.com.cn/problem/CF865Dhttp…...

在spring框架的基础上自定义autowired注解

在Spring框架的基础上自定义Autowired注解是不可能的&#xff0c;因为注解本身是Java语言的一部分&#xff0c;并且Autowired是Spring框架提供的注解&#xff0c;用于实现自动装配。但是&#xff0c;你可以创建自己的注解&#xff0c;并结合Spring框架的扩展机制来实现类似的功…...

2005NOIP普及组真题 3. 采药

线上OJ&#xff1a; [05NOIP普及组] 采药 核心思想: 1、题与 2006 年普及组第2题《开心的金明》一样&#xff0c;考察的都是01背包。 2、直接套用01背包的一阶模板即可 a、限定时间看成背包总容量m b、每件物品的采药时间 v 看成占用背包的体积 c、每件物品的价格w作为该物品的…...

preventDefault()与stopPropagation()有什么区别?

1、event.preventDefault()方法 &#xff08;1&#xff09;可防止元素的默认行为 &#xff08;2&#xff09;如果在表单元素中使用&#xff0c;它将阻止其提交 &#xff08;3&#xff09;如果在锚元素中使用&#xff0c;它将阻止其导航 &#xff08;4&#xff09;如果在上下…...

AIGC 全面介绍

随着人工智能技术的不断进步&#xff0c;生成式人工智能&#xff08;AI Generated Content, AIGC&#xff09;成为了一个日益热门的话题。AIGC 指利用人工智能技术生成各类内容&#xff0c;包括文本、图像、音频、视频等。与传统的内容生成方法相比&#xff0c;AIGC 具有速度快…...

网站入门:Flask用法讲解

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

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言&#xff1a;语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域&#xff0c;文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量&#xff0c;支撑着搜索引擎、推荐系统、…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...

GitFlow 工作模式(详解)

今天再学项目的过程中遇到使用gitflow模式管理代码&#xff0c;因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存&#xff0c;无论是github还是gittee&#xff0c;都是一种基于git去保存代码的形式&#xff0c;这样保存代码…...

mac 安装homebrew (nvm 及git)

mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用&#xff1a; 方法一&#xff1a;使用 Homebrew 安装 Git&#xff08;推荐&#xff09; 步骤如下&#xff1a;打开终端&#xff08;Terminal.app&#xff09; 1.安装 Homebrew…...

CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝

目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为&#xff1a;一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...

STM32HAL库USART源代码解析及应用

STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...