RestTemplate 的用法

1.引入对应依赖

2.private final RestTemplate restTemplate;

3.上代码

bash 复制代码
@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;
        }
    }

}
bash 复制代码
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);
                    }
                }
            }
}
相关推荐
咸鱼2.01 小时前
【java入门到放弃】Dubbo
java·开发语言·dubbo
JAVA面经实录9177 小时前
Java企业级工程化·终极完整版背诵手册(无遗漏、全覆盖、面试+落地通用)
java·开发语言·面试
许彰午9 小时前
CacheSQL(二):主从复制——OpLog 环形缓冲区与故障自动恢复
java·数据库·缓存
Bat U10 小时前
JavaEE|多线程初阶(七)
java·开发语言
掌心向暖RPA自动化12 小时前
如何获取网页某个元素在屏幕可见部分的中心坐标影刀RPA懒加载坐标定位技巧
java·javascript·自动化·rpa·影刀rpa
日取其半万世不竭13 小时前
Minecraft Java版社区服务器搭建教程(Linux,适合新手)
java·linux·服务器
TeamDev13 小时前
JxBrowser 9.0.0 版本发布啦!
java·前端·混合应用·jxbrowser·浏览器控件·跨平台渲染·原声输入
AI人工智能+电脑小能手14 小时前
【大白话说Java面试题】【Java基础篇】第24题:Java面向对象有哪些特征
java·开发语言·后端·面试
AI人工智能+电脑小能手14 小时前
【大白话说Java面试题】【Java基础篇】第25题:JDK1.8的新特性有哪些
java·开发语言·后端·面试
likerhood14 小时前
SLF4J: Failed to load class “StaticLoggerBinder“ 解决
java·log4j·maven