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

restTemplate使用总结

1、配置类

@Configuration
public class RestTemplateConfig() {@Beanpublic RestTemplate restTemplate(ClientHttpRequestFactory factory) {return new RestTemplate(factory);}@Beanpublic ClientHttpRequestFactory simpleClientHttpRequestFactory() {HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();factory.setConnectTimeout(300000);factory.setReadTimeout(300000);return factory;}
}

实际使用时可以生成不同的factory

// 不进行证书校验
RestTemplate restTemplateHttps = new RestTemplate(RestTemplateConfig.generateHttpRequestFactory());public static HttpComponentsClientHttpRequestFactory generateHttpRequestFactory()throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException {TrustStrategy acceptingTrustStrategy = (x509Certificates, authType) -> true;SSLContext sslContext = SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy).build();SSLConnectionSocketFactory connectionSocketFactory = new SSLConnectionSocketFactory(sslContext,new NoopHostnameVerifier());HttpClientBuilder httpClientBuilder = HttpClients.custom();httpClientBuilder.setSSLSocketFactory(connectionSocketFactory);CloseableHttpClient httpClient = httpClientBuilder.build();HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();factory.setHttpClient(httpClient);return factory;}

2、发送请求

(1)restTemplate.exchange

// get
HttpEntity<MyDTO> httpEntity = new HttpEntity<>(inputBody,headers)
ResponseEntity<Map> exchange = restTemplate.exchange(url,HttpMethod.GET,httpEntity,Map.class)// Post
HttpEntity<Map<String, Object>> httpEntity = new HttpEntity<Map<String, Object>>(params, headers);ResponseEntity<refreshUeResultDTO> ret = restTemplate.exchange(restfulUrl, HttpMethod.POST, httpEntity,refreshUeResultDTO.class);

(2) restTemplate.getForEntity

ResponseEntity<String> ret = restTemplate.getForEntity(restful, String.class, new HashMap<>());

getForEntity没法直接携带header

(3)restTemplate.postForEntity

HttpEntity<EspaceMessageDTO> httpEntity = new HttpEntity<>(espaceMessageDTO,headers);ResponseEntity<Object> res = restTemplate.postForEntity(url,httpEntity, Object.class);

(4)接收的类带泛型

ResponseEntity<List<RundeckTaskDO>> result = restTemplate.exchange(restful, HttpMethod.GET, entity, new ParameterizedTypeReference<List<RundeckTaskDO>>() {});

相关文章:

restTemplate使用总结

1、配置类 Configuration public class RestTemplateConfig() {Beanpublic RestTemplate restTemplate(ClientHttpRequestFactory factory) {return new RestTemplate(factory);}Beanpublic ClientHttpRequestFactory simpleClientHttpRequestFactory() {HttpComponentsClient…...

【云服务器介绍】选择指南 腾讯云 阿里云全配置对比 搭建web 个人开发 app 游戏服务器

​省流目录&#xff1a;适用于博客建站&#xff08;2-4G&#xff09;、个人开发/小型游戏[传奇/我的世界/饥荒]&#xff08;4-8G&#xff09;、数据分析/大型游戏[幻兽帕鲁/雾锁王国]服务器&#xff08;16-64G&#xff09; 1.京东云-618专属活动 官方采购季专属活动地址&#x…...

PostgreSQL 高级SQL查询(三)

1. JOIN 操作 1.1 内连接&#xff08;INNER JOIN&#xff09; 内连接用于返回两个表中存在匹配关系的记录。基本语法如下&#xff1a; SELECT columns FROM table1 INNER JOIN table2 ON table1.column table2.column;例如&#xff0c;从 users 表和 orders 表中检索所有用…...

麒麟系统安装Redis

一、背景 如前文&#xff08;《麒麟系统安装MySQL》&#xff09;所述。 二、下载Redis源码 官方未提供麒麟系统的Redis软件&#xff0c;须下载源码编译。 下载地址&#xff1a;https://redis.io/downloads 6.2.14版本源码下载地址&#xff1a;https://download.redis.io/re…...

Java-方法引用

方法引用概念 把已经有的方法拿过来用&#xff0c;当做函数式接口中抽象方法的方法体 前提条件 1、引用处必须是函数式接口 2、被引用的方法必须已经存在 3、被引用方法的形参和返回值 需要跟抽象方法保持一致 4、被引用方法的功能要满足当前需求 方法引用格式示例 方…...

华为---配置基本的访问控制列表(ACL)

11、访问控制列表&#xff08;ACL&#xff09; 11.1 配置基本的访问控制列表 11.1.1 原理概述 访问控制列表ACL(Access Control List)是由permit或deny语句组成的一系列有顺序的规则集合&#xff0c;这些规则根据数据包的源地址、目的地址、源端口、目的端口等信息来描述。A…...

Apple Intelligence,我们能得到什么?(上)

苹果公司WWDC 2024发布会&#xff0c;苹果AI成为最吸睛的焦点。不过&#xff0c;苹果的AI不是大家口中的AI&#xff0c;而是苹果独有的概念&#xff1a;Apple Intelligence&#xff0c;苹果智能。 所谓Apple Intelligence&#xff0c;被定义为iPhone、iPad和Mac的个人智能系统…...

【数据库中的存储桶】

存储桶是对象存储系统中的一个核心概念&#xff0c;起源于Amazon S3&#xff08;Simple Storage Service&#xff09;并被其他对象存储解决方案&#xff08;如MinIO、Google Cloud Storage等&#xff09;广泛采用。在传统的文件系统中&#xff0c;我们通常使用目录和子目录来组…...

多选项卡的shiny

下面是一个包含多个选项卡的 Shiny 应用程序示例代码。在这个例子中&#xff0c;我们创建了一个包含三个选项卡的 Shiny 应用程序&#xff0c;每个选项卡中都有不同的内容。 library(shiny)# Define UI ui <- fluidPage(titlePanel("多选项卡 Shiny 应用"),tabse…...

Python项目Django框架发布相关

1.Nginx配置 server { listen 80; server_name 域名地址;location / { uwsgi_pass 0.0.0.0:4563;// 运行地址include uwsgi_params;} location /static{ // 静态文件路径alias /www/wwwroot/djserverproject/static;}}server { listen 443; server_name 域名地址;ssl_certific…...

kettle使用手册 安装9.0版本 建议设置为英语

0.新建转换的常用组件 0. Generate rows 定义一个字符串 name value就是字符串的值 0.1 String operations 字段转大写 去空格 1. Json input 来源于一个json文件 1.json 或mq接收到的data内容是json字符串 2. Json output 定义Jsonbloc值为 data, 左侧Fieldname是数据库…...

golang string、byte[]以及rune的基本概念,用法以及区别

在 Go 语言中&#xff0c;string、byte[] 和 rune 是处理文本和字符的三种不同数据类型。它们有各自的用途和特点&#xff0c;下面将详细介绍它们的基本概念、用法以及区别。 1. string 基本概念 字符串类型&#xff1a;string 是 Go 语言中的一种基本类型&#xff0c;用于表…...

全国211大学名单及排名

序号 名称 省份 985 211 双一流 1 北京大学 北京 是 是 是 2 清华大学 北京 是 是 是 3 复旦大学 上海 是 是 是 4 上海交通大学 上海 是 是 是 5 浙江大学 浙江 是 是 是 6 国防科技大学 湖南 是 是 是 7 中国人民大学 北京 是 …...

ASR 语音识别相关

ASR 语音识别 ASR&#xff08;Automatic Speech Recognition&#xff0c;自动语音识别&#xff09;是一种能够将语音转换为文本的技术。这种技术使得计算机能够“听懂”我们说的话&#xff0c;并将它们记录下来。这项技术被广泛应用于日常生活中的各种场景&#xff0c;比如语音…...

kotlin require和assert 区别

在 Kotlin 中&#xff0c;require 和 assert 是两种用于验证条件的方法&#xff0c;主要区别在于它们的使用场景和触发机制。 require require 用于函数参数的验证。如果条件不满足&#xff0c;它会抛出 IllegalArgumentException 异常。这通常用于对公共 API 的输入参数进行…...

考研:数学一/二 和英语一/二 有什么区别

考研数学一/二 区别&#xff1a; 考试内容&#xff1a; 数学一&#xff1a;考查内容包括高等数学、线性代数、以及概率论与数理统计&#xff0c;覆盖的知识面较为全面&#xff0c;题目难度也相对较高。数学二&#xff1a;考试内容包含高等数学和线性代数&#xff0c;不包括概率…...

地铁中的CAN通信--地铁高效安全运转原理

目前地铁采用了自动化的技术来实现控制,有ATC(列车自动控制)系统可以实现列车自动驾驶、自动跟踪、自动调度;SCADA(供电系统管理自动化)系统可以实现主变电所、牵引变电所、降压变电所设备系统的遥控、遥信、遥测;BAS(环境监控系统)和FAS(火灾报警系统)可以实现车站…...

简化数据提取:Excel-Extractor 使用指南

前言 在当今数据驱动的世界中&#xff0c;从复杂的 Excel 文件中提取和分析数据是许多业务和研究工作的基本需求。为了简化这一过程&#xff0c;Excel-Extractor 项目应运而生。本文将为你介绍 Excel-Extractor 的功能和如何在你的项目中使用它。 什么是 Excel-Extractor&…...

用户中心项目全流程

企业做项目流程 需求分析 > 设计&#xff08;概要设计 、 详细设计&#xff09; > 技术选型 >初始化项目 / 引入需要的技术 > 写个小demo > 写代码 &#xff08;实现业务逻辑&#xff09; > 测试&#xff08;单元测试&#xff09;> 代码提交 / 代码评审 …...

达梦数据库的系统视图v$database

达梦数据库的系统视图v$database 基础信息 OS版本&#xff1a; Red Hat Enterprise Linux Server release 7.9 (Maipo) DB版本&#xff1a; DM Database Server 64 V8 DB Version: 0x7000c 03134284132-20240115-215128-20081在达梦数据库&#xff08;Dameng Database&#xf…...

Claude Code与Cursor CLI集成:AI辅助编程工作流优化实践

1. 项目概述&#xff1a;Claude Code与Cursor CLI的桥梁如果你和我一样&#xff0c;日常开发中同时使用Claude Code和Cursor&#xff0c;并且对Composer 2的执行速度印象深刻&#xff0c;那么你很可能也面临过这样的困境&#xff1a;Claude Code在规划、分析和代码审查方面表现…...

3个真实问题告诉你:DdddOcr如何成为你的免费离线验证码识别助手

3个真实问题告诉你&#xff1a;DdddOcr如何成为你的免费离线验证码识别助手 【免费下载链接】ddddocr 带带弟弟 通用验证码识别OCR pypi版 项目地址: https://gitcode.com/gh_mirrors/dd/ddddocr 当你在自动化测试、数据采集或系统集成中遇到验证码时&#xff0c;是否曾…...

ComfyUI-Impact-Pack深度解析:从AI图像模糊到专业级细节增强的完整解决方案

ComfyUI-Impact-Pack深度解析&#xff1a;从AI图像模糊到专业级细节增强的完整解决方案 【免费下载链接】ComfyUI-Impact-Pack Custom nodes pack for ComfyUI This custom node helps to conveniently enhance images through Detector, Detailer, Upscaler, Pipe, and more. …...

Jellyfin.Plugin.MetaShark配置详解:10个关键设置优化你的元数据刮削体验

Jellyfin.Plugin.MetaShark配置详解&#xff1a;10个关键设置优化你的元数据刮削体验 【免费下载链接】jellyfin-plugin-metashark jellyfin电影元数据插件 项目地址: https://gitcode.com/gh_mirrors/je/jellyfin-plugin-metashark 想要让你的Jellyfin媒体库拥有丰富的…...

QQ音乐加密文件解密终极指南:qmcdump工具完全使用教程

QQ音乐加密文件解密终极指南&#xff1a;qmcdump工具完全使用教程 【免费下载链接】qmcdump 一个简单的QQ音乐解码&#xff08;qmcflac/qmc0/qmc3 转 flac/mp3&#xff09;&#xff0c;仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump 你是否…...

测试测量工程师必读:从EMC暗室到传感器选型的实战解析

1. 项目概述&#xff1a;一场关于测试测量知识的“周五挑战”又到了周五下午&#xff0c;手头的项目报告写得差不多了&#xff0c;代码也调试得告一段落&#xff0c;是不是感觉大脑需要换个频道放松一下&#xff1f;作为一名在电子工程和测试测量领域摸爬滚打了十几年的老工程师…...

dotUI设计系统生成器:基于品牌配置一键生成React组件库

1. 项目概述&#xff1a;dotUI&#xff0c;一个为品牌而生的设计系统在当今的Web开发领域&#xff0c;尤其是基于React的生态中&#xff0c;我们常常面临一个两难的选择&#xff1a;是使用现成的UI组件库快速搭建界面&#xff0c;还是投入大量时间从零开始构建一套完全符合品牌…...

Butlerclaw:OpenClaw AI Agent的图形化桌面管理工具

1. 项目概述如果你和我一样&#xff0c;对AI Agent的潜力感到兴奋&#xff0c;但又对OpenClaw这类框架复杂的安装、配置和日常管理感到头疼&#xff0c;那么Butlerclaw的出现&#xff0c;绝对是一个值得庆祝的消息。简单来说&#xff0c;Butlerclaw是一个为OpenClaw量身打造的“…...

从恒流源到差动放大:铂电阻测温电路的优化路径与实践

1. 铂电阻测温基础与设计挑战 铂电阻作为工业测温的中坚力量&#xff0c;其核心优势在于稳定的物理特性。PT100在0℃时标称电阻为100Ω&#xff0c;温度系数为0.385Ω/℃。这个看似简单的参数背后&#xff0c;却隐藏着电路设计的三大矛盾&#xff1a;灵敏度与噪声的博弈、线性度…...

Qt QColumnView实战:手把手教你打造一个macOS Finder风格的文件浏览器

Qt QColumnView实战&#xff1a;从零构建macOS风格文件浏览器 在桌面应用开发中&#xff0c;文件浏览器的实现一直是开发者面临的经典挑战。传统方案往往采用QTreeView或QListView&#xff0c;但它们难以还原macOS Finder那种优雅的列式导航体验。这正是QColumnView的用武之地—…...