Как отправлять содержимое тела как необработанный JSON, а не данные формы в Spring Boot RestTemplate - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть приложение весенней загрузки, и я пытаюсь вызвать службу отдыха другой компании, используя RestTemplate.

Для удаленной службы отдыха требуется несколько заголовков и основного содержимого в формате Raw JSON. Вот образец запроса тела:

{ 
 "amount": "10000",
 "destinationNumber": "365412"
}

Но мое тело запроса генерирует так:

{ 
 amount= [10000],
 destinationNumber= [365412]
}

Я сделал так:

    String BASE_URI = "http://server.com/sericeX";
    RestTemplate template = new RestTemplate();

    MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
    headers.add("Authorization","Some token");
    headers.add("Content-Type", "application/json");

    MultiValueMap<String, String> bodyParam = new LinkedMultiValueMap<>();
    bodyParam.add("amount", request.getAmount());
    bodyParam.add("destinationNumber",request.getDestinationNumber());

    HttpEntity entity = new HttpEntity(bodyParam,headers);

    ResponseEntity<TransferEntity> responseEntity = template.exchange(BASE_URI, HttpMethod.POST, entity,TransferEntity.class);
    TransferEntity transferEntity = responseEntity.getBody();

Не могли бы вы сказать мне, как я могу генерировать тело запроса в виде JSON?

1 Ответ

0 голосов
/ 13 ноября 2018

Благодаря @Alex Salauyou, основанном на его комментарии, использование HashMap вместо MultiValueMap решило проблему.Вот изменения, которые необходимо сделать:

HashMap<String, String> bodyParam = new HashMap<>();
bodyParam.put("amount", request.getAmount());
bodyParam.put("destinationNumber",request.getDestinationNumber());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...