HttpClientErrorException $ BadRequest: 400: [без тела] при вызове restTemplate.postForObject - PullRequest
1 голос
/ 10 марта 2020

Я звоню в службу POST getOrder3 , написанную на SpringBoot, которая работает нормально (проверено в Postman), но получает ошибку при вызове через restTemplate.postForObject из другой службы. Я пробовал 2 версии клиентской службы getOrderClient и getOrderClient2 , но обе дают ту же ошибку:

HttpClientErrorException $ BadRequest: 400: [без тела]

Подробности указаны ниже. Мы ценим любую помощь *

Теперь, когда я пытаюсь позвонить через другой микросервис через restTemplate.postForObject, я получаю сообщение об ошибке. Пробовал 2 версии клиента, как показано ниже: getOrderClient и getOrderClient2

getOrderClient

@PostMapping(value="/getOrderClient/{month}",produces="application/json")
    public OrderResponse getOrderClient(
            @PathVariable("month") String month,
            @RequestParam String parmRequestSource,
            @RequestParam String parmAudienceType,
            @RequestBody OrderRequestForm orderRequestForm) throws URISyntaxException, JsonProcessingException {
        RestTemplate restTemplate = new RestTemplate();

        URI uri = new URI("http://localhost:51001/orders/v1/getOrder/"+month+"?parmRequestSource="+parmRequestSource+"&parmAudienceType="+parmAudienceType);
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);

        String requestJson  = new ObjectMapper().writeValueAsString(orderRequestForm);

        HttpEntity<String> httpEntity = new HttpEntity<String>(requestJson,headers);
        String response =  restTemplate.postForObject(uri, httpEntity, String.class);

        return new ObjectMapper().readValue(response, OrderResponse.class);
    }

getOrderClient2

@PostMapping(value="/getOrderClient2/{month}",produces="application/json")
        public OrderResponse getOrderClient2(
                @PathVariable("month") String month,
                @RequestParam String parmRequestSource,
                @RequestParam String parmAudienceType,
                @RequestBody OrderRequestForm orderRequestForm) throws URISyntaxException, JsonProcessingException {
            RestTemplate restTemplate = new RestTemplate();

            URI uri = new URI("http://localhost:51001/orders/v1/getOrder/"+month+"?parmRequestSource="+parmRequestSource+"&parmAudienceType="+parmAudienceType);

            return restTemplate.postForObject(uri, orderRequestForm, OrderResponse.class);
        }

Оба дают одинаковую ошибку:

HttpClientErrorException $ BadRequest: 400: [без тела]

Пожалуйста, предложите.

...