Loading

支持数组和对象为参数的http请求Java写法

关键使用了ParameterizedTypeReference

ParameterizedTypeReference<ESBReturn<List<ERPFixedAssetCartPushDataResultDTO>>> typeRef = new ParameterizedTypeReference<>() {
        };

 

代码示例:

/**
     * 推送erp 资产主数据同步传到ERP接口
     *
     * @param esbMessage 入参 推送一个资产卡片列表
     * @return ESBReturn 出参 得到一个资产编号(erp)列表
     */
    public ESBReturn<List<ERPFixedAssetCartPushDataResultDTO>> pushFixedAssetCard(ESBMessage<List<ERPFixedAssetCartPushDataDTO>> esbMessage) {
        String esbString = JSON.toJSONString(esbMessage);
        log.info("资产主数据同步传到ERP接口推送数据: {}", esbString);
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        HttpEntity<String> entity = new HttpEntity<>(esbString, headers);
        ParameterizedTypeReference<ESBReturn<List<ERPFixedAssetCartPushDataResultDTO>>> typeRef = new ParameterizedTypeReference<>() {
        };
        try {
            ResponseEntity<ESBReturn<List<ERPFixedAssetCartPushDataResultDTO>>> result = restTemplate.exchange(
                    ESB_URL + CREATE_FIXED_ASSET_CARD_URL,
                    HttpMethod.POST,
                    entity,
                    typeRef);
            log.info("资产主数据同步传到ERP接口返回数据:{}", result);
            return result.getBody();
        } catch (Exception e) {
            log.error("资产主数据同步传到ERP接口失败{}", e.getMessage());
            throw new BusinessException("资产主数据同步传到ERP接口失败" + e.getMessage());
        }
    }

 

posted @ 2025-08-20 05:45  Jicing  阅读(7)  评论(0)    收藏  举报