SPRING CLOUD: RestTemplate postForObject не может отправить тело запроса - PullRequest
0 голосов
/ 21 декабря 2018

Это моя функция потребительского запроса:

    @PostMapping(value = "/spuSkuInfo")
    public DataResponseDto<Map<String, Object>> addSpuAndSkuInfo(@Valid SpuSkuInfoBo spuSkuInfoBo) {
        String url = REST_URL_PREFIX + "addSpuAndSkuInfo";
        DataResponseDto<Map<String, Object>> dataResponseDto;
        MultiValueMap<String,SpuSkuInfoBo> reqMap = new LinkedMultiValueMap<>();
        reqMap.add("spuSkuInfoBo",spuSkuInfoBo);
        HttpEntity<MultiValueMap<String,SpuSkuInfoBo>> httpEntity = new HttpEntity<>(reqMap);
        dataResponseDto = restTemplate.postForObject(url,httpEntity,DataResponseDto.class);
   }

Это мой провайдер:

    @PostMapping(value = "/addSpuAndSkuInfo")
    public DataResponseDto<Map<String, Object>> addSpuAndSkuInfo(SpuSkuInfoBo spuSkuInfoBo) {
        DataResponseDto<Map<String, Object>> responseDto;
        try {
            responseDto = spuSkuService.addSpuAndSkuInfo(spuSkuInfoBo);
        } catch (Exception e) {
            logger.error("addSpuAndSkuInfo", e);
            responseDto = new DataResponseDto<>();
            responseDto.setRspCd(PrdErrorCode.PRD_FAIL_CD);
            responseDto.setRspInf("");
            return responseDto;
        }
        return responseDto;
    }

У потребителя я могу получить Pojo 'SpuSkuInfoBo' И когда я отлаживаю в провайдере,Я просто не могу получить тело запроса 'SpuSkuInfoBo'

enter image description here

1 Ответ

0 голосов
/ 21 декабря 2018

Наконец, я решил проблему, добавив @RequstBody в функцию провайдера

public DataResponseDto<Map<String, Object>> addSpuAndSkuInfo(@RequestBody SpuSkuInfoBo spuSkuInfoBo)

...