发送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://www.mzph.cn/news/846869.shtml

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

相关文章

MySQL 使用方法以及教程

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

Ubuntu 24.04 LTS 安装Docker

1 更新软件包索引&#xff1a; sudo apt-get update 2 安装必要的软件包&#xff0c;以允许apt通过HTTPS使用仓库&#xff1a; sudo apt-get install apt-transport-https ca-certificates curl software-properties-common 3 添加Docker的官方GPG密钥&#xff1a; curl -fs…

算法金 | 你真的完全理解 Logistic 回归算法了吗

大侠幸会&#xff0c;在下全网同名「算法金」 0 基础转 AI 上岸&#xff0c;多个算法赛 Top 「日更万日&#xff0c;让更多人享受智能乐趣」 今日 178/10000 1. 引言 吴恩达&#xff1a;机器学习的六个核心算法&#xff01;&#xff0c; 通透&#xff01;&#xff01;十大回…

Python专为开发和部署数据驱动的应用程序库之taipy使用详解

概要 Taipy 是一个强大的 Python 库,专为开发和部署数据驱动的应用程序而设计。它通过提供一套丰富的工具和组件,使开发者能够快速构建和维护复杂的业务逻辑和数据交互界面。无论是金融分析、供应链管理还是任何需要高度数据交互的应用,taipy 都能提供高效的解决方案。 安装…

Orange AIpro开箱上手

0.介绍 首先感谢官方给到机会&#xff0c;有幸参加这次活动。 OrangePi AIpro(8T)采用昇腾AI技术路线&#xff0c;具体为4核64位处理器AI处理器&#xff0c;集成图形处理器&#xff0c;支持8TOPS AI算力&#xff0c;拥有8GB/16GB LPDDR4X&#xff0c;可以外接32GB/64GB/128GB/2…

小程序抓包详细教程

小程序抓包详细教程 前言&#xff1a;关于小程序抓包一直想写出一个比较详细的教程 实验设备&#xff1a; ​ 微信: https://windows.weixin.qq.com/?langzh_CN ​ Proxifier&#xff1a;https://www.proxifier.com/download/ (需要挂梯子访问下载) ​ burpsuite&#xff…

1.JAVA小项目(零钱通)

一、说明 博客内容&#xff1a;B站韩顺平老师的视频&#xff0c;以及代码的整理。此项目分为两个版本&#xff1a; 面向过程思路实现面向对象思路实现 韩老师视频地址&#xff1a;【【零基础 快速学Java】韩顺平 零基础30天学会Java】 https://www.bilibili.com/video/BV1fh4…

Spring 源码:深度解析AOP源码配置解析

文章目录 一、 解析AOP配置的入口1.1 从XML配置到AOP Namespace的解析流程1.2 分析注解驱动的AOP配置解析流程 二、AOP配置解析的核心流程2.1 ConfigBeanDefinitionParser 类2.2 parse()2.3 parseAdvisor()2.4 parseAspect()2.5 parsePointcut()2.6 createAdvisorBeanDefinitio…

算法每日一题(python,2024.05.29) day.11

题目来源&#xff08;力扣. - 力扣&#xff08;LeetCode&#xff09;&#xff0c;简单&#xff09; 解题思路&#xff1a; 法一&#xff1a;切片函数法 直接用python中的切片函数直接解决 法二&#xff1a;交换法 从俩头开始交换字符串的数字&#xff0c;若为奇数&#xff…

GITLAB常见问题总结

Troubleshooting GitLab Pages administration (FREE SELF) 原文地址 stage: Plan group: Knowledge info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/…

STM8单片机变频器设计

变频调速技术是现代电力传动技术的重要发展方向,而作为变频调速系统的核心—变频器的性能也越来越成为调速性能优劣的决定因素,除了变频器本身制造工艺的“先天”条件外,对变频器采用什么样的控制方式也是非常重要的。随着电力电子技术、微电子技术、计算机网络等高新技术的…

Kompas AI:智能生活的开启者

引言 在现代社会&#xff0c;**人工智能&#xff08;AI&#xff09;**已经深刻地影响了我们的生活和工作。无论是智能家居、自动驾驶&#xff0c;还是医疗诊断&#xff0c;AI的应用无处不在。而在众多AI平台中&#xff0c;Kompas AI 作为一个先进的对话式AI平台&#xff0c;通过…

R语言数据分析-针对芬兰污染指数的分析与考察

1. 研究背景及意义 近年来&#xff0c;随着我国科技和经济高速发展&#xff0c;人们生活质量也随之显著提高。但是&#xff0c; 环境污染问题也日趋严重&#xff0c;给人们的生活质量和社会生产的各个方面都造成了许多不 利的影响。空气污染作为环境污染主要方面&#xff0c;更…

【漏洞复现】海康威视综合安防管理平台 orgManage/v1/orgs/download 任意文件读取漏洞

0x01 产品简介 海康威视综合安防管理平台是一套“集成化”、“智能化”的平台,通过接入视频监控、一卡通、停车场、报警检测等系统的设备。海康威视集成化综合管理软件平台,可以对接入的视频监控点集中管理,实现统一部署、统一配置、统一管理和统一调度。 0x02 漏洞概述 海康…

7-8 矩阵字符

给定一个仅包含小写字母的字符串S,用这些字符恰好排成一个n行m列的矩阵(m≥n)&#xff0c;请找出所有符合要求的矩阵中最接近于正方形的那个矩阵。然后从第一列开始&#xff0c;逐列按照从上到下的顺序输出矩阵中的字符。 例如&#xff1a;S "abcdefgh"。按要求m≥…

动态规划-求买卖股票所能获得的最大收益(hard)

一、问题描述 二、解题思路 1.先看有哪几个可变参数&#xff1a; (1).当前第几天 nowday(范围&#xff1a;0->n-1) (2).剩余交易次数 restTime(范围&#xff1a;k->0) (3).当天可买入还是可卖出 isnowHold(0 表示当前未持有可买入&#xff0c;1 表示当前持有可卖出) 2.…

WIN10环境下xposed环境搭建

禁止拿来干坏事&#xff0c;仅做学习为目的 环境需求 1.夜神模拟器7.1 2.Android stdio 2022.3.1 3. Adb环境配置 具体实现 1.安装xposed 打开可一键安装&#xff0c;重启 2.连接虚拟机 adb connect 127.0.0.1:620013.打开as,进入project 4.在lib下添加准备好的jar包 …

AD软件底层丝印反转

快捷键VB&#xff0c;翻转后底部视图所有显示就正常了&#xff0c;当底层确认之后再按VB就回到正常状态。 否则你就看到一个镜像的丝印。 快捷键VB后 注意&#xff0c;经过VB反转BOTTOM后TOP层的丝印变镜像翻转了。 设计完毕后调整过来即可。

查询语言:ClickHouse的SQL基础与特点

1.背景介绍 查询语言&#xff1a;ClickHouse的SQL基础与特点 作者&#xff1a;禅与计算机程序设計艺術 1. 背景介绍 1.1 ClickHouse简介 ClickHouse是Yandex开源的一个高性能分布式 column-oriented DBSMS (Column-based Distributed SQL Management System)&#xff0c;它…

怎么下载 jar 包

一、在Maven仓库里面下载 Maven仓库 网址&#xff1a;https://mvnrepository.com/ 二、搜索需要的 jar 包&#xff08;以 druid 为例&#xff09; 三、找到 druid jar包&#xff0c;点进去 四、找到自己需要的版本&#xff0c;点进去 五、 点 jar 下载