RestTemplate 的用法

2023-11-04

1.引入对应依赖

2.private final RestTemplate restTemplate;

3.上代码

@Service
@Slf4j
public class CspWarehouseServiceImpl implements ICspWarehouseService {
private final RestTemplate restTemplate;

    public CspWarehouseServiceImpl() {
        this.restTemplate = new RestTemplate();
    }

private final String returnMessage = "无数据,参数都正确,没有数据";


 /**
     * 仓库温度gps请求
     *
     * @param url              url
     * @param gpsReqDTO        请求采纳数
     * @param responseBodyType json类型
     * @param <T>              参数
     * @return 结果
     */
    public <T> T exchange(String url,
                          String gpsReqDTO,
                          Class<T> responseBodyType) {
        try {
            log.info("请求仓库温度gps接口请求报文={}", gpsReqDTO);
            HttpHeaders headers = new HttpHeaders();
            headers.setContentType(MediaType.APPLICATION_JSON);
            HttpEntity<String> requestEntity = new HttpEntity<>(gpsReqDTO, headers);
            ResponseEntity<T> responseEntity = restTemplate.postForEntity(
                    url,
                    requestEntity,
                    responseBodyType
            );
            return responseEntity.getBody();
        } catch (Exception e) {
            log.error("调用仓库温度GPS接口异常=", e);
            return null;
        }
    }

}
public List<CspWarehouseEquipment> selectCspWarehouseEquipmentList(CspWarehouseEquipment cspWarehouseEquipment) {

CspGPSReqDTO gpsReqDTO = buildGpsRequest(equipmentNumberList, "GetColdStorageCurrentTemp", startTime, endTime);

String reqDto = objectMapper.writeValueAsString(gpsReqDTO);
            String url = environment.getProperty("gps.platform.coldTmpUrl");

JSONObject returnObjDevice = exchange(url, reqDto, JSONObject.class);

if (returnObjDevice != null && (!returnMessage.contains(returnObjDevice.getString("Rtn_Data"))
                    && !"[]".equals(returnObjDevice.getString("Rtn_Data")) &&
                    !returnMessage.contains(returnObjDevice.getString("Rtn_Msg")))) {
                Integer rtnCode = returnObjDevice.getInteger("Rtn_Code");
                if (rtnCode != null && rtnCode == 0) {
                    if (!"无数据!".equals(returnObjDevice
                            .getString("Rtn_Data"))) {
                        List<CspWarehouseTempInterface> temperatureDetailsList = JSON.parseObject(returnObjDevice
                                        .getString("Rtn_Data"),
                                new TypeReference<List<CspWarehouseTempInterface>>() {
                                });
                        structureData(list, temperatureDetailsList);
                    }
                }
            }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RestTemplate 的用法 的相关文章

随机推荐

  • 腾讯校招编程题之快递分身术

    题目描述 城市里有3000条横向的道路和3000条纵向的道路 分别从1开始编号知道3000 相邻两条平行道路的间距为1 我们用 x y 表示第x号横向道路和第y号纵向道路 N个需要送快递的点坐落在这些交点上 小Q只能沿着这些道路送快递 而且
  • [Unity3D]Lua中使用协程coroutine和计时器timer

    习惯了unity3d的协程用法 那么我们在Unity里面怎么使用 StartCoroutine StopCoroutine WaitForSeconds 首先lua也有coroutine 其实lua中的协程真的是暂停 用法和unity并非相
  • 模型分类model

    模型可以按照多个维度进行分类 以下是常见的几种模型分类方式 1 根据应用领域分类 数学模型 基于数学原理和方程式来描述和解决问题 如微积分模型 线性代数模型等 物理模型 基于物理原理和规律来模拟和解释现象 如力学模型 电路模型等 经济模型
  • D3.js 绘制柱状图

    使用D3 V4版本绘制 使用D3绘制柱状图 绘制效果如下 使用D3绘制柱状图 先对需要绘制的图形拆解 主要分为以下几个部分 1 比例尺的定义 2 坐标轴的绘制 3 添加矩形 4 修改坐标轴样式 5 柱状图装饰效果添加 首先 先定义data
  • Docker存储

    前言 上一篇文章中简单总结了一下docke的基础使用方法 这次我来总结一下有关docker存储方面的相关知识 本文同样建立在CloudMan的系列教程之上 有兴趣的可以直接移步 有些人可能觉得这个很简单 存储就是硬盘嘛 docker容器既然
  • Shell脚本之for循坏语句

    目录 一 for循环语句 1 1 列表循环 1 2 不带列表循环 1 3 类C风格的for循环 1 4 for循环案列 二 总结 一 for循环语句 语法结构 列表循环 不带列表循环 类c风格的for循环 1 1 列表循环 1 格式1 fo
  • stm32 定时器TIM时钟步骤

    1 TIM3 时钟使能 RCC APB1PeriphClockCmd RCC APB1Periph TIMx ENABLE 时钟使能 2 初始化定时器参数 设置自动重装值 分频系数 计数方式等 定时器的初始化函数TIM TimeBaseIn
  • 高性能TCPServer

    最近两天正在学习TCPServer 在网上看到比较好的两篇文章 在这里记录下来 High Performance NET Socket Server Using Async Winsock 原文地址 Introduction Sockets
  • 手机端开发(uni-app、vant、mui)优缺点分析

    疫情期间 使用过uni app 最近又接触了vant 但是由于项目部署原因 项目不支持前后端分离 仅支持静态页Html css项目 所以最后用mui开发一套 今天就介绍一下 我用过这三个框架的看法以及他们之间的优缺点 一 优点 1 uni
  • 【开放域目标检测】三:Learning transferable visual models from natural language supervision论文补充

    这里主要再简单看一下框架图 训练比较简单 使用的是对比学习的方法 做图文匹配的任务 计算相似度 给定batch N N N的image text pairs CLIP预测 N N
  • Devpress (DxReport)使用ReportDesigner (一) 基本功能

    1 Devpress DxReport 编辑 1 新建一个XtraReport 2 在报告上点右键添加元素 元素说明 1 其中有报告头 报告尾 页头 页尾 组头 组尾 详细 2 一份报告只有一个报告头一个报告尾 里面的元素只也现一次 3 页
  • 删掉node包

    删掉node包 删掉node包 命令 npm install rimraf g rimraf node modules
  • WIN11更改WSL2的存放路径

    目前在网上常常能查阅到的方法为先导出系统发行版 子系统名称 为tarball文件 然后再重新导入tarball为新的发行版 并设置新的安装位置 之后再删除旧的发行版 此方法也是微软官方推荐的方法 详见 如何备份我的 WSL 发行版 或者如何
  • 12月大事件日历

    12月大事件日历 11月30 12月2日 中国光伏行业年度大会 12月1日 印度央行启动零售数字卢比试点 12月2日 美国11月非农数据失业率 12月4日 OPEC 会议 12月5日 G7对俄 原油价格上限 生效 12月7日 EIT能源展望
  • Vue实现加载效果

    Vue实现加载效果 div div loading默认为false 点击查询按钮时加载页面 QueryData this loading true const iframe this refs top this refs top src 要
  • 【Shell牛客刷题系列】SHELL11 转置文件的内容:继续awk命令的升级打怪之旅

    该系列是基于牛客Shell题库 针对具体题目进行查漏补缺 学习相应的命令 刷题链接 牛客题霸 Shell篇 该系列文章都放到专栏下 专栏链接为 专栏 Linux 欢迎关注专栏 本文知识预告 首先简单学习了rs命令 这个命令不常用 了解即可
  • 三种Python中两个列表数字“相加”的方法

    目录 for循环 map numpy 最近我在用Python处理数据时 需要将列表数据相加实现 累积 效果的 需要注意 我这里所说的列表相加 并非是下面这种 列表元素相加 的情况 list 1 1 2 3 list 2 4 5 6 prin
  • 虚拟机搭建Hadoop集群环境-CentOS篇

    文章目录 Linux环境安装 虚拟机环境准备 虚拟机克隆 修改虚拟机IP 修改主机名 创建普通用户 重启虚拟机 使用Xshell远程访问 集群搭建 安装 JDK 安装 Hadoop 关闭防火墙 其它节点虚拟机克隆 配置 SSH 无密钥登录
  • Qt5.12+VS2017环境下编译QtAV视频库

    1 QtAV是一个跨平台的开源视频库 使用了ffmpeg核心 https github com wang bin QtAV 版本号1 12 0 2 安装好Qt 同步QtAV视频库 在github主页下载相应的依赖库 我使用了QtAV dep
  • RestTemplate 的用法

    1 引入对应依赖 2 private final RestTemplate restTemplate 3 上代码 Service Slf4j public class CspWarehouseServiceImpl implements I