4-1 SpringCloud快速开发入门:RestTemplate类详细解读

news2024/9/28 3:00:34

RestTemplate类详细解读

RestTemplate 的 GET 请求

Get 请求可以有两种方式:
第一种:getForEntity
该方法返回一个 ResponseEntity对象,ResponseEntity是 Spring 对
HTTP 请求响应的封装,包括了几个重要的元素,比如响应码、contentType、
contentLength、响应消息体等;

在这里插入图片描述
在这里插入图片描述

ResponseEntity<String> responseEntity = 
restTemplate.getForEntity("http://01-SPRINGCLOUD-SERVICE-PROVIDER/service/hello", 
String.class); 
 
String body = responseEntity.getBody(); 
HttpStatus statusCode = responseEntity.getStatusCode(); 
int statusCodeValue = responseEntity.getStatusCodeValue(); 
HttpHeaders headers = responseEntity.getHeaders(); 
 
System.out.println(body); 
System.out.println(statusCode); 
System.out.println(statusCodeValue); 
System.out.println(headers); 

以上代码:
getForEntity 方法第一个参数为要调用的服务的地址,即服务提供者提供的http://01-SPRINGCLOUD-SERVICE-PROVIDER/service/provide 接口地址,注意这里是通过服务名调用而不是服务地址,如果改为服务地址就无法实现客户端负载均衡了。

getForEntity 方法第二个参数 String.class 表示希望返回的 body 类型是 String 类型,如果希望返回一个对象,也是可以的;

另外两个重载方法:

方法一:public ResponseEntity getForEntity(String url, Class responseType, Object… uriVariables) throws RestClientException

集合参数请求根据占位符:

restTemplate.getForEntity(“http://01-SPRINGCLOUD-SERVICE-PROVIDER/service/provide?id={1}&name={2}”, String.class, “{1, ‘张无忌’}”).getBody(); //{1, ‘张无忌’}跟占位符对应

方法二:public ResponseEntity getForEntity(String url, Class responseType, Map<String, ?> uriVariables) throws RestClientException

map参数请求根据键:

Map<String, Object> paramMap = new ConcurrentHashMap<>();
paramMap.put(“id”, 1);
paramMap.put(“name”, “张无忌”);
restTemplate.getForEntity(“http://01-SPRINGCLOUD-SERVICE-PROVIDER/service/provide?id={id}&name={name}”, String.class, paramMap).getBody();

第二种:getForObject() 与 getForEntity 使用类似,只不过 getForObject 是在getForEntity 基础上进行了再次封装,可以将 http 的响应体 body信息转化成指定的对象接收,方便我们的代码开发;

当你不需要返回响应中的其他信息,只需要 body 体信息的时候,可以使用这个更方便;

它有三个个重载的方法,和 getForEntity 相似;

T getForObject(URI url, Class responseType) throws RestClientException;

T getForObject(String url, Class responseType, Object… uriVariables) throws RestClientException;

T getForObject(String url, Class responseType, Map<String, ?> uriVariables) throws RestClientException;

RestTemplate 的 POST 请求:

Post 与 Get 请求非常类似:

restTemplate.postForObject()
restTemplate.postForEntity()
restTemplate.postForLocation()

RestTemplate 的 PUT 请求:

restTemplate.put();

RestTemplate 的 DELETE 请求:

restTemplate.delete();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/381631.html

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

相关文章

Python基础篇(十五)-- Pygame游戏编程

1 初识Pygame Pygame是一个开源的Python模块&#xff0c;专门用于多媒体应用&#xff08;如电子游戏&#xff09;的开发&#xff0c;其中包含对图像、声音、视频、事件、碰撞等的支持。Pygame建立在SDL的基础上&#xff0c;SDL是一套跨平台的多媒体开发库&#xff0c;用C语言实…

39万字完整版智能矿山项目建设整体解决方案

本资料来源网络&#xff0c;仅做知识分享&#xff0c;请勿商用。完整资料领取见文末&#xff0c;部分资料内容&#xff1a; 1.1 总体技术要求 1.1.1 核心业务架构 智能矿山业务架构是在统一的标准与规范及安全运维保障体系下&#xff0c;按分层设计模式&#xff0c;分为设备层、…

QML鼠标事件

QML中常用的事件有&#xff1a; 鼠标事件键盘事件拖拽事件定时器MouseArea&#xff08;鼠标区域&#xff09; MouseArea是一个不可见的项目&#xff0c;同、通常用来和一个可见的项目配合使用来为其提供鼠标处理。鼠标处理的逻辑可以包含在MouseArea项目中 常用的属性&#xff…

【设计模式】原型模式与建造者模式

原型模式 原型模式是指通过原型实例指定创建对象的种类&#xff0c;然后通过拷贝的方式创建新的对象。属于创建型模式 原型模式的核心在于拷贝原型对象&#xff0c;主要用于对对象的复制。当你需要通过一大段get/set方法去构建对象的时候&#xff0c;就可以考虑使用原型模式了…

手牵手教Docker部署Springboot+vue ,全过程十分详细,轻松完成项目部署(简单,高效,通用)

手把手教Docker部署Springbootvue &#xff0c;详细全过程&#xff0c;轻松完成项目部署&#xff08;简单&#xff0c;高效&#xff09; 上线前准备 腾讯云的服务器&#xff0c;服务器安装好docker 和docker-compose 最好事先了解技术 nginxdocker-compose 整体编排 后端部…

【C++】Visual Studio C++ 配置并使用gtest(不好用你捶我)

文章目录 相信大家都能感受到Visual Studio C 编辑器链接 lib 或 dll文件是一件非常头疼的事情。配置gooleTest的过程也不例外。 市面上很多教程&#xff0c;要么就不全&#xff0c;要么就缺少一些细节&#xff0c;导致我自己再配置的过程中&#xff0c;踩了很多坑。今天就记录…

用不同的思路实现括号匹配(java)

给定一个只包括 (&#xff0c;) 的字符串&#xff0c;判断字符串是否有效。 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 以上就是题目要求 利用替换的思想 ()()()()()()()(())例如需要判断例子中的括号是否有效&#xff0c;用替换的思想具体就是 将字…

力扣sql简单篇练习(二十一)

力扣sql简单篇练习(二十一) 1 使用唯一标识符替换员工ID 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 # Write your MySQL query statement below SELECT e2.unique_id,e1.name FROM Employees e1 LEFT JOIN EmployeeUNI e2 ON e1.ide2.id1.3 运行…

使用netlify实现自动化部署前端项目(无服务器版本)

介绍 本文以 github仓库进行介绍关联netlify的无服务前端自动化部署。用途&#xff1a;个人网站设计、小游戏等当然这只是让你入门~具体细节等待你自己去探索 实现 打开官方网站 如果没有注册过的账户&#xff0c;你需要使用 github 去进行登录。注册完成后会自动给你提示填…

有关Windows域信任关系的一系列知识

简单的总结了一下来自这篇文章的知识点 https://www.kroll.com/-/media/kroll/pdfs/publications/rootedcon2019-pentesting-active-directory-forests-carlos-garcia.pdf 视频录像为 https://www.youtube.com/watch?v6aV5tZlQ2EQ&t10s&themeRefresh1 森林 域是由树和…

项目管理的工作内容有哪些?

首先&#xff0c;什么是项目管理&#xff1f; 项目管理是为了交付项目成果&#xff0c;包括“规划&#xff08;尤其关注估算&#xff09;——实施——确保成功”。项目管理可以用在所有事情上&#xff0c;当然&#xff0c;这个定义听起来可能还不够清晰&#xff0c;但它的好处…

华为机试题:HJ91 走方格的方案数(python)

文章目录&#xff08;1&#xff09;题目描述&#xff08;2&#xff09;Python3实现&#xff08;3&#xff09;知识点详解1、input()&#xff1a;获取控制台&#xff08;任意形式&#xff09;的输入。输出均为字符串类型。1.1、input() 与 list(input()) 的区别、及其相互转换方…

剑指offer06.从尾到头打印链表

题目描述 解题思路 遍历链表&#xff0c;依次将元素压入栈中。然后依次弹出栈顶元素&#xff0c;存入数组返回。程序 class Solution { public:vector<int> reversePrint(ListNode* head) {ListNode *phead;stack<int> s1;while(p!NULL) //遍历链表&#xff0c;元…

jetson-Linux上 python 部署yolov5报错总结

第一个问题&#xff1a;python报错 illegal instruction报错先上图这报错&#xff0c;emmmmm&#xff0c;我是小白&#xff0c;多谢大佬的笔记&#xff0c;帮我解决了&#xff0c;虽然我也没搞懂。。。。嘿嘿具体解决办法就是&#xff1a;临时运行代码&#xff1a;1-在运文件前…

优雅停止 SpringBoot 服务,拒绝 kill -9 暴力停止

在使用 SpringBoot 的时候&#xff0c;都要涉及到服务的停止和启动&#xff0c;当我们停止服务的时候&#xff0c;很多时候大家都是kill -9 直接把程序进程杀掉&#xff0c;这样程序不会执行优雅的关闭。而且一些没有执行完的程序就会直接退出。 我们很多时候都需要安全的将服…

SAP 采购定价过程字段解析

下面我们针对每一个字段进行解释和用途分析 &#xff1a; 1、 步骤&#xff1a;代表了创建PO时&#xff0c;哪个条件类型放到前面&#xff0c;哪个放到后面&#xff0c;如果步骤号相同&#xff0c;那就以谁先选择出来谁就在前面。 2、 计数&#xff1a;没有任何实际意义&a…

web,h5海康视频接入监控视频流记录二(后台node取流)

首先将自己的appkey,secret以及对应参数填上&#xff0c;看看是否能够取流成功。 ws取流是需要开通559端口的&#xff0c;可以联系海康技术开放&#xff0c;以及mgc需要升级版本。 普通模式的话 需要升级mgc到5.13.102版本&#xff0c;可以找下现场技术帮你升级&#xff0c;先…

Java | IO 模式之 JavaBIO 应用

文章目录IO模型Java BIOJava NIOJava AIO&#xff08;NIO.2&#xff09;BIO、NIO、AIO的使用场景BIO1 BIO 基本介绍2 BIO 的工作机制3 BIO 传统通信实现3.1 业务需求3.2 实现思路3.3 代码实现4 BIO 模式下的多发和多收消息4.1 业务需求4.2 实现思路4.3 代码实现5 BIO 模式下接收…

大V龚文祥造谣董明珠恋情被禁言

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 因造谣董明珠与王自如恋情&#xff0c;知名大V龚文祥老师被今日头条禁言。龚文祥说&#xff0c;69岁的董明珠&#xff0c;找了一个小自己34岁的男友&#xff0c;引的网友议论纷纷。 2月26日&#…

使用Python和OpenCV制作电影般的截屏相册!

目录 简介&#xff1a; 实现步骤&#xff1a; 代码说明&#xff1a; 报错error&#xff1a; 问题所在&#xff1a; 解决方法&#xff1a; 1&#xff09;卸载&#xff1a; 2&#xff09;重新安装&#xff1a; 3&#xff09;安装成功&#xff1a; 效果如下&#xff1a; 简…