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

Springboot与RestTemplate

        RestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。

一、使用Get进行访问

1、获取json格式

        使用 getForEntity() API 发起 GET 请求:

RestTemplate restTemplate = new RestTemplate();String fooResourceUrl = "http://localhost:8080/spring-rest/foos";ResponseEntity<String> response = restTemplate.getForEntity(fooResourceUrl + "/1", String.class);System.out.println(response.getStatusCode());

        可以访问完整的 HTTP 响应,因此可以检查 HTTP 状态码是否成功,或者处理响应体:

ObjectMapper mapper = new ObjectMapper();
JsonNode root = mapper.readTree(response.getBody());
JsonNode name = root.path("name");
System.out.println(name.asText());

        如上,将响应体作为标准字符串(String)返回,并使用 Jackson(以及 Jackson 提供的 JSON 节点结构)来验证一些细节。

2、获取pojo格式

        可以将响应直接映射到资源 DTO:

public class Foo implements Serializable {private long id;private String name;// 标准的 get 、set 方法
}

        只需要调用 template 的 getForObject API 即可:

Foo foo = restTemplate.getForObject(fooResourceUrl + "/1", Foo.class);
Assertions.assertNotNull(foo.getName());
Assertions.assertEquals(foo.getId(), 1L);

二、使用Post进行访问

1、传递表单参数

        可以使用 postForLocation()postForObject() 或 postForEntity() 方法 在 API 中创建新资源。前者(postForLocation)返回新创建资源的 URI,后者返回资源本身。

    // 创建请求头对象HttpHeaders headers = new HttpHeaders();// 设置请求内容类型 表单上传编码格式为application/x-www-form-urlencodedheaders.setContentType(MediaType.APPLICATION_FORM_URLENCODED);// 请求携带的参数与对应的值MultiValueMap<String, String> map = new LinkedMultiValueMap<>();map.add("username", USER_NAME);map.add("password", PASSWORD);// HttpEntity表示http的request和resposne实体,它由消息头和消息体组成。// 从HttpEntity中可以获取http请求头和回应头,也可以获取http请求体和回应体信息。HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<>(map, headers);return restTemplate.postForObject(TOKEN_URL, request, ComplainWorkToken.class);

2、传递json参数

        HttpHeaders headers = new HttpHeaders();// 设置请求头是jsonheaders.add("Content-Type", MediaType.APPLICATION_JSON_UTF8_VALUE);// 携带的json参数格式Map<String, Object> map2 = new HashMap<>();map2.put("pageNo", pageNo);map2.put("pageSize", pageSize);map2.put("endTime", endTime);map2.put("startTime", startTime);HttpEntity<Map<String, Object>> httpEntity = new HttpEntity<>(map2, headers);ComplainWorkResponse complainWorkResponse = restTemplate.postForObject(url, httpEntity, ComplainWorkResponse.class);assert complainWorkResponse != null;return complainWorkResponse.getComplainWorkData().getList();

相关文章:

Springboot与RestTemplate

RestTemplate是Spring提供的用于访问Rest服务的客户端&#xff0c;RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。 一、使用Get进行访问 1、获取json格式 使用 getForEntity() API 发起 GET 请求&#xff1a; RestTemplate restTemplate…...

端口发布与暴露

端口发布与暴露 目录 发布端口发布到临时端口发布所有端口试一试 使用 Docker CLI使用 Docker Compose 如果你一直在跟随本指南&#xff0c;你应该理解容器为应用程序的每个组件提供了隔离的进程。每个组件 - 如 React 前端、Python API 和 Postgres 数据库 - 都运行在自己的…...

Unity:使用Texture2D动态创建的图像无法正常显示 / 修改图像后未生效

开发中遇到需要动态绘制图像的需求&#xff0c;前后文代码如下所示&#xff1a; Texture2D newImageTexture new Texture2D(width, height); Color32[] newImagePixels new Color32[height * width];for (int y 0; y < height ; y) {for (int x 0; x < width; x){if…...

【LinuxC语言】详解TCP/IP

文章目录 前言TCP与UDP协议的介绍TCP协议流式传输TCP的三次握手连接TCP的四次挥手连接断开总结前言 在我们的日常生活中,无论是浏览网页,还是发送电子邮件,甚至是在线视频聊天,都离不开网络通信。而在网络通信中,TCP和UDP协议起着至关重要的作用。本文将以通俗易懂的语言…...

数字化转型下的企业人力资源信息系统研究

随着数字化转型的加速&#xff0c;企业人力资源管理面临着全新的挑战和机遇。传统的人力资源信息系统&#xff08;HRIS&#xff09;在新时代的要求下必须进行深刻的革新和升级&#xff0c;以更好地支持企业的发展战略和员工的需求。 数据驱动的决策支持 在当今这个信息化迅猛发…...

docker camunda 8.5 部署步骤

Camunda Platform 8 环境准备 Docker 版本要求 Docker 20.10.16 is required; docker compose version 1.27.0.;github 开源地址:https://github.com/camunda/camunda-platformcamunda7 文档地址:https://docs.camunda.org/manual/7.21/user-guide/process-engine/社区地址: …...

学懂C#编程:常用高级技术——委托(Delegate)应用场景——委托与Lambda表达式的结合使用详解

在C#中&#xff0c;委托与Lambda表达式的结合使用是现代编程实践中的一个重要且强大的特性&#xff0c;它极大地提高了代码的简洁性和可读性。下面将详细讲解这两个概念如何协同工作&#xff0c;以及如何在实际编程中有效利用它们。 委托基础 委托是C#中的一种引用类型&#x…...

05-java基础——循环习题

循环的选择&#xff1a;知道循环的次数或者知道循环的范围就使用for循环&#xff0c;其次再使用while循环 猜数字 程序自动生成一个1-100之间的随机数&#xff0c;在代码中使用键盘录入去猜出这个数字是多少&#xff1f; 要求&#xff1a;使用循环猜&#xff0c;一直猜中为止…...

网络安全等级保护测评

网络安全等级保护 《GB17859 计算机信息系统安全保护等级划分准则》 规定计算机信息系统安全保护等级共分五级 《中华人民共和国网络安全法》 “国家实行网络安全等级保护制度。 等级测评 测评机构依据国家网络安全等级保护制度规定&#xff0c;按照有关 管理规范和…...

真有被这套零售数据分析方案惊艳到

在数字化时代&#xff0c;零售行业的竞争愈发激烈&#xff0c;如何精准把握市场动态、优化业务流程、提升市场竞争力成为了每一家零售企业都面临的挑战。奥威BI零售数据分析方案&#xff0c;一款具备全面、高效、智能的数据分析能力的BI方案出现地恰到好处。 奥威BI零售数据分…...

亚马逊卖家为何需要自养账号?揭秘背后的原因

亚马逊是一家极为重视用户体验的国际电商平台&#xff0c;因此用户的评论和星级评价对店铺排名影响深远。平台审核评论非常严格&#xff0c;这些评价直接影响商品在平台上的生存和发展。 在亚马逊上&#xff0c;用户的评分和评论对商品的成功至关重要。好评多的商品通常被认为优…...

牛了,LSTM+Transformer王炸结合创新,荣登Nature,精度高达95.65%

【LSTM结合Transformer】的研究方向探索了如何利用Transformer模型处理序列数据的能力以及LSTM在捕捉时间序列依赖性方面的优势。这一方向的意义在于通过融合两种模型的特点&#xff0c;提高了对复杂时空数据的预测准确性&#xff0c;尤其是在智能电网攻击检测、多变量时间序列…...

Java面试题:通过实例说明工厂模式和抽象工厂模式的用法,以及它们在解耦中的作用

工厂模式和抽象工厂模式是创建型设计模式中的两种&#xff0c;主要用于对象的创建&#xff0c;并且通过将对象的创建过程封装起来&#xff0c;来实现代码的解耦和灵活性。下面通过具体实例来说明这两种模式的用法及其在解耦中的作用。 工厂模式&#xff08;Factory Method Pat…...

成都欣丰洪泰文化传媒有限公司电商服务的创新者

在数字化浪潮席卷全球的今天&#xff0c;电商行业正以前所未有的速度蓬勃发展。作为这一领域的佼佼者&#xff0c;成都欣丰洪泰文化传媒有限公司凭借其对电商服务的深度理解和精准把握&#xff0c;成功在竞争激烈的市场中脱颖而出&#xff0c;成为行业内的佼佼者。 一、公司简…...

学习笔记——动态路由——RIP(距离矢量协议)

一、距离矢量协议 1、距离矢量协议 矢量行为&#xff1a;协议收到一个路由之后&#xff0c;查看是否可以加入到本地的路由表中&#xff0c;如果可以加入&#xff0c;则可以传递&#xff0c;如果不可以加入&#xff0c;则无法传递。 距离矢量路由协议 RIP基于距离矢量算法(又…...

【python】OpenCV—Segmentation

文章目录 cv2.kmeans牛刀小试 cv2.kmeans cv2.kmeans 是 OpenCV 库中用于执行 K-Means 聚类算法的函数。以下是根据参考文章整理的 cv2.kmeans 函数的中文文档&#xff1a; 一、函数功能 cv2.kmeans 用于执行 K-Means 聚类算法&#xff0c;将一组数据点划分到 K 个簇中&…...

python-题库篇-Python语言特性

文章目录 Python语言特性1 Python的函数参数传递2 Python中的元类(metaclass)3 staticmethod和classmethod4 类变量和实例变量5 Python自省6 字典推导式7 Python中单下划线和双下划线8 字符串格式化:%和.format9 迭代器和生成器10 *args and **kwargs11 面向切面编程AOP和装饰器…...

WEB界面上使用ChatGPT

&#xff08;作者&#xff1a;陈玓玏&#xff09; 开源项目&#xff0c;欢迎star哦&#xff0c;https://github.com/tencentmusic/cube-studio 随着大模型不断发展&#xff0c;现在无论写代码&#xff0c;做设计&#xff0c;甚至老师备课、评卷都可以通过AI大模型来实现了&…...

【Matlab】CNN-LSTM分类 卷积神经网络-长短期记忆神经网络组合模型(附代码)

资源下载&#xff1a; https://download.csdn.net/download/vvoennvv/89466499 分类算法资源合集&#xff1a;https://download.csdn.net/download/vvoennvv/89466519 目录 Matlab SVM支持向量机分类算法 Matlab RF随机森林分类算法 Matlab RBF径向基神经网络分类算法 Ma…...

性能工具之 MySQL OLTP Sysbench BenchMark 测试示例

文章目录 一、前言二、测试环境1、服务器配置2、测试拓扑 三、测试工具安装四、测试步骤1、导入数据2、压测数据3、清理数据 五、结果解析六、最后 一、前言 做为一名性能工程师掌握对 MySQL 的性能测试是非常必要的&#xff0c;本文基于 Sysbench 对MySQL OLTP&#xff08;联…...

CST仿真入门实战:Dipole天线结果解读与关键参数分析

1. Dipole天线仿真结果初探 第一次打开CST仿真软件完成Dipole天线仿真后&#xff0c;面对密密麻麻的结果图表&#xff0c;相信很多人都会感到无从下手。我刚开始接触电磁仿真时也是这样&#xff0c;盯着那些S参数曲线和远场辐射图发愣。其实读懂这些结果并不难&#xff0c;关键…...

(二)OpenOFDM频偏校正:从原理到实现的信号修复之旅

1. 当信号开始"跳舞"&#xff1a;认识频偏问题 第一次调试无线接收链路时&#xff0c;我看到示波器上的星座图像被熊孩子打翻的跳棋——本该整齐排列的16-QAM信号点&#xff0c;现在像喝醉了一样在屏幕上乱转。这种"信号跳舞"的现象&#xff0c;就是我们今…...

开源阅读鸿蒙版:打造您的个性化无广告数字图书馆

开源阅读鸿蒙版&#xff1a;打造您的个性化无广告数字图书馆 【免费下载链接】legado-Harmony 开源阅读鸿蒙版仓库 项目地址: https://gitcode.com/gh_mirrors/le/legado-Harmony legado-Harmony是一款专为鸿蒙系统设计的开源电子书阅读器&#xff0c;它为您提供纯净的阅…...

当SuperPoint遇上C++ LibTorch:手把手教你将PyTorch视觉模型部署到生产环境(避坑实录)

SuperPoint与LibTorch的C工程化实战&#xff1a;从Python研究到生产部署的深度解析 在计算机视觉领域&#xff0c;PyTorch因其灵活性和易用性成为研究人员的首选框架&#xff0c;但当模型需要部署到生产环境时&#xff0c;C的高效性和稳定性往往成为必选项。本文将深入探讨如何…...

FreeRTOS源码解析(9)任务通知

1.任务通知本质&#xff1a;直接操作目标任务的 TCB 字段。 它不自带控制块、不分配独立存储、不维护自己的等待列表——全程只做一件事&#xff1a;读写目标任务 TCB 里已有的 ulNotifiedValue 和 ucNotifyState&#xff0c;必要时将对方从延迟列表移到就绪列表。正因如此&…...

GTA5线上小助手:5大核心功能让你的洛圣都冒险更轻松高效

GTA5线上小助手&#xff1a;5大核心功能让你的洛圣都冒险更轻松高效 【免费下载链接】GTA5OnlineTools GTA5线上小助手 项目地址: https://gitcode.com/gh_mirrors/gt/GTA5OnlineTools 还在为GTA5线上模式中繁琐的任务和漫长的游戏进程感到困扰吗&#xff1f;GTA5线上小…...

XRDP 远程桌面连接 Ubuntu:从安装到优化的完整实践指南

1. 为什么选择XRDP连接Ubuntu&#xff1f; 对于需要远程管理Ubuntu系统的用户来说&#xff0c;图形化界面操作往往比纯命令行更直观高效。XRDP作为开源的远程桌面协议实现&#xff0c;相比TeamViewer等商业方案&#xff0c;它完全免费且性能出色&#xff1b;相比VNC&#xff0c…...

3种智能解析技术:VideoDownloadHelper如何突破网页视频下载限制

3种智能解析技术&#xff1a;VideoDownloadHelper如何突破网页视频下载限制 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 在当今数字内容爆…...

从Django后台到Celery Worker:一个完整用户注册邮件异步发送的部署实录

从Django后台到Celery Worker&#xff1a;一个完整用户注册邮件异步发送的部署实录 在Web应用开发中&#xff0c;用户注册流程是每个系统必备的基础功能。当新用户完成注册表单提交后&#xff0c;系统通常需要发送欢迎邮件或激活链接。如果直接在请求响应周期内执行邮件发送&am…...

为什么92%的康复科博士生还没用NotebookLM做系统评价?——2024年最新工具链适配白皮书首发

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;NotebookLM在康复医学研究中的范式革命 传统康复医学研究长期受限于多源异构数据整合困难、临床证据转化周期长、跨学科知识对齐成本高等瓶颈。NotebookLM 以“以文献为中心”的可溯源推理架构&#xf…...