RestTemplate 参考样例

2024-05-27 15:44
文章标签 参考 样例 resttemplate

本文主要是介绍RestTemplate 参考样例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

通用配置:

package com.example.demo.config;import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import org.springframework.http.client.ClientHttpRequestFactory;/*** RestTemplate配置类*/
@Configuration
public class RestTemplateConfig extends RestTemplate {private int restTemplateTimeout = 10 ;@Beanpublic RestTemplate restTemplate() {return new RestTemplate(clientHttpRequestFactory());}@Beanpublic ClientHttpRequestFactory clientHttpRequestFactory() {HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();//读取超时,单位:毫秒factory.setReadTimeout(1000 * restTemplateTimeout);//连接超时,单位:毫秒factory.setConnectTimeout(1000 * restTemplateTimeout);factory.setConnectionRequestTimeout(1000 * restTemplateTimeout);return factory;}}

返回值(里面用到了 swagger,不需要的可以把相关标签删除):

package com.example.demo.utils;import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;import java.io.Serializable;/*** @author Rain* @date 2023/11/30*/
@ApiModel(description= "响应数据结构")
@Data
public class Result<T> implements Serializable {@ApiModelProperty(value = "响应代码{<br />" +"Success(0),//基本符合预期<br />" +"<br />" +"        Failure(-1), //虽然异常,但无法提供更多额外信息<br />" +"<br />" +"        FAILED_InvalidParameter(-2),//无效参数,不符合服务端基本校验要求<br />" +"<br />" +"        FAILED_UnsupportedDataSourceType(-3),//数据源类型不支持<br />" +"<br />" +"        FAILED_UnauthorizedCodeOfDataLake(-4),//您的 code 未经授权,无法提供token<br />" +"<br />" +"        FAILED_NoDataMatchConditions(-5),//您的没有数据能够匹配您的条件查询<br />" +"<br />" +"        ERROR_DataSourceServerAccessIsNotResponded(-6),//数据源服务器访问异常<br />" +"<br />" +"        ERROR_ServerIsError(-7);//零件查询服务异常<br />" +"<br />" +"        ERROR_InvalidToken(-8);//无效 token<br />" +"<br />" +"        ERROR_TokenIsExpirated(-9);//token 过期<br />" +"<br />" +"        FAILED_NoLoginPermissionIsRejected(-10);//您的 accessToken 免登录请求无效,无法提供token<br />" +"<br />" +"        FAILED_NoLoginPermissionIsExpirated(-11),;//您的 accessToken 免登录过期,无法提供token<br />" +"}")private Integer code;@ApiModelProperty(value = "响应信息")private String msg;@ApiModelProperty(value = "数据")private T data;private Result(){}private static <T> Result<T> build(Label label) {return build(label, null);}private static <T> Result<T> build(Label label, T result) {return build(label, label.name(), result);}private static <T> Result<T> build(Label label, String message, T result) {Result<T> resultJson = new Result<>();resultJson.code = label.code;resultJson.msg = message;resultJson.data = result;return resultJson;}public static enum Label {/*** code 遵守如下约定:* 正数 代表 期望现象;* 负值 代表悲观现象;* 0 代表 基本符合预期。*/Success(0),//基本符合预期/*** 虽然异常,但无法提供更多额外信息*/Failure(-1), 虽然异常,但无法提供更多额外信息/*** 无效参数* 不符合服务端基本校验要求*/FAILED_InvalidParameter(-2),//无效参数,不符合服务端基本校验要求/*** 数据源类型不支持*/FAILED_UnsupportedDataSourceType(-3),//数据源类型不支持/*** 您的 code 未经授权,无法提供token*/FAILED_UnauthorizedCodeOfDataLake(-4),//您的 code 未经授权,无法提供token/*** 您的没有数据能够匹配您的条件查询*/FAILED_NoDataMatchConditions(-5),//您的没有数据能够匹配您的条件查询/*** 数据源服务器访问异常*/ERROR_DataSourceServerAccessIsNotResponded(-6),//数据源服务器访问异常/*** 零件查询服务异常*/ERROR_ServerIsError(-7),//零件查询服务异常/*** 无效 token*/ERROR_InvalidToken(-8),//无效 token/*** token 过期*/ERROR_TokenIsExpirated(-9),//token 过期/*** 您的 accessToken 免登录请求无效,无法提供token*/FAILED_NoLoginPermissionIsRejected(-10),//您的 accessToken 免登录请求无效,无法提供token/*** 您的 accessToken 免登录过期,无法提供token*/FAILED_NoLoginPermissionIsExpirated(-11),//您的 accessToken 免登录过期,无法提供token;private Integer code;Label(Integer code) {this.code = code;}public <T> Result<T> as(){return Result.build(this);}public <T> Result<T> as(T data){return Result.build(this,data);}}
}

这里直接写 service-impl层(两种 post 方式,算是抛砖引入):

@Autowired
private RestTemplateConfig restTemplate;@Override
public void list4Parts(VOSearch vo) {// 方法1     
String url = "https://www.baidu.com/";
//拼凑返回值
Result<Map<String, Object>> result = this.restTemplate.postForObject(url, this.getHttpEntity(vo), Result.class);// 方法2
//拼凑返回值
Map<String, String> body = new HashMap<>();
body.put("option", option);
body.put("optionVersion", optionVersion);ResponseEntity<Result> tokenResponse = this.restTemplate.exchange(url, HttpMethod.POST, this.getHttpEntity(body), Result.class);// 获取token响应的body
Result<Map<String, Object>> result = tokenResponse.getBody();}
/*** 获取单个 VOSearch 的 json 参数结构体** @return HttpEntity*/private HttpEntity<VOSearch> getHttpEntity(VOSearch vo) {//准备参数HttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.APPLICATION_JSON);return new HttpEntity<>(vo, headers);}/*** 获取单个 key-value 的 json 参数结构体** @return HttpEntity*/private HttpEntity<Map<String, String>> getHttpEntity(Map<String, String> body) {//准备参数HttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.APPLICATION_JSON);return new HttpEntity<>(body, headers);}

这篇关于RestTemplate 参考样例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1007898

相关文章

基于SpringBoot的宠物服务系统+uniapp小程序+LW参考示例

系列文章目录 1.基于SSM的洗衣房管理系统+原生微信小程序+LW参考示例 2.基于SpringBoot的宠物摄影网站管理系统+LW参考示例 3.基于SpringBoot+Vue的企业人事管理系统+LW参考示例 4.基于SSM的高校实验室管理系统+LW参考示例 5.基于SpringBoot的二手数码回收系统+原生微信小程序+LW参考示例 6.基于SSM的民宿预订管理系统+LW参考示例 7.基于

2024 年高教社杯全国大学生数学建模竞赛 C 题 农作物的种植策略 参考论文 无水印

持续更新中,2024年数学建模比赛思路代码论文都会发布到专栏内,只需订阅一次!  完整论文+代码+数据结果链接在文末!  订阅后可查看参考论文文件 第一问 1.1 问题重述 这个问题围绕的是华北山区的某乡村,在有限的耕地条件下,如何制定最优的农作物种植策略。乡村有 34 块露天耕地和 20 个大棚,种植条件包括粮食作物、蔬菜、水稻和食用菌。除了要考虑地块的面积、种植季节等,还要确保

【B题第三套完整论文已出】2024数模国赛B题第三套完整论文+可运行代码参考(无偿分享)

基于多阶段优化的电子产品质量控制与成本管理研究 摘要 随着现代制造业和智能化生产的发展,质量控制和生产优化问题成为工业管理中的重要研究课题。本文针对电子产品生产过程中质量控制和成本优化中的问题,基于系统优化和决策分析思想,通过确定检测成本、次品率、装配成本等指标,以最大化利润和最小化生产成本为目标建立了多阶段质量控制优化模型,并使用穷举算法对模型进行求解。 针对问题一,本文通过对零配件的

【A题成品论文已出】24数学建模国赛A题成品论文(附参考代码)免费分享

A 题  “板凳龙”  闹元宵 摘要 “板凳龙”是一种传统的民俗文化活动,通常由许多板凳连接成龙的形状进行表演。本文基于螺旋线和板凳龙的运动特性,建立数学模型来分析舞龙队在不同情况下的运动轨迹、调头路径和速度优化等问题。问题主要涉及板凳龙的行进路径、碰撞避免、调头空间的设计,以及如何优化龙头的速度,以确保龙身与龙尾的行进安全。 针对问题一,舞龙队由223节板凳组成,龙头前把手的速度为1

maven学习笔记【配置参考】

本文接上一篇 第一部分 继续来介绍。      目前为止我们还是手工命令行方式执行程序的,没有和IDE结合,其实Maven天生就对Eclipse做了集成,我们使用mvn eclipse:eclipse就得到了一个Eclipse的项目结构,在Eclipse中使用import功能就能直接导入到IDE中了。我们来看一下这个过程:        此时的demo就是Eclipse项

【B题第二套完整论文已出】2024数模国赛B题第二套完整论文+可运行代码参考(无偿分享)

2024数模国赛B题完整论文 摘要: 随着电子产品制造业的快速发展,质量控制与成本优化问题成为生产过程中亟待解决的核心挑战。为应对生产环节中的质量不确定性及成本控制需求,本文结合抽样检测理论和成本效益分析,通过构建数学模型,探讨了如何在保证质量的前提下最小化生产成本的优化策略。我们基于零配件次品率、检测成本、成品检测与拆解费用等关键指标,制定了检测与处理的最优决策,并使用优化算法对模型进行求解

2024国赛数学建模B题完整分析参考论文38页(含模型和可运行代码)

2024 高教社杯全国大学生数学建模完整分析参考论文 B 题 生产过程中的决策问题 目录 摘要 一、问题重述 二、问题分析 三、 模型假设 四、 模型建立与求解 4.1问题1 4.1.1问题1思路分析 4.1.2问题1模型建立 4.1.3问题1样例代码(仅供参考) 4.1.4问题1样例代码运行结果(仅供参考) 4.2问题2 4.2.1问题2思路分析 4.2.2问题2模

AFSim仿真系统---向导参考指南 (1)

向导参考指南         向导参考指南列出了包含在向导中的功能,并按各种类别进行了组织。 启动   命令行选项   1  命令行参数 - 向导     用法: wizard.exe [ <file_name.txt> ][ <project_file.afproj> ]{ -console }<file_name1.txt> <file_name2.txt> <…> <f

2024全国大学省数学建模竞赛A题-原创参考论文(部分+第一问代码)

一问题重述 1.1 问题背景  "板凳龙",又称"盘龙",是浙闽地区的传统地方民俗文化活动。这种独特的表演艺术形式融合了中国传统龙舞的精髓和地方特色,展现了人们对美好生活的向往和对传统文化的传承。 在板凳龙表演中,人们将少则几十条,多则上百条的板凳首尾相连,形成蜿蜒曲折的"龙"形。这种创新的表演方式不仅展现了民间艺术的智慧,也体现了集体协作的精神。盘龙时,龙头在前领头,龙身和龙尾相随盘旋,整

IEEE格式参考和指导

IEEE Conference Template: Word [Link]Links to an external site., Latex [LinkLinks to an external site.]IEEE Reference Guide: LinkLinks to an external site. IEEE格式是一种广泛用于工程、技术和计算机科学领域的引用和参考文献格式。IEEE