Я использую Spring Rest Template, чтобы сделать запрос PUT Http, и до сих пор я передавал тело запроса, используя следующее:
MultiValueMap<String, Object> body = new LinkedMultiValueMap<String, Object>();
body.add("account", testAccount);
HttpEntity<?> requestEntity = new HttpEntity<Object>(body, headers);
ResponseEntity<String> responseEntity;
try {
responseEntity = rest.exchange(uri, HttpMethod.PUT, requestEntity, String.class);
}
catch (HttpStatusCodeException e) {
log.error("Http PUT failed with response: " + e.getStatusText());
return ResponseEntity.status(e.getStatusCode()).body(e.getResponseBodyAsString());
}
return responseEntity;
Тело запроса, которое отправляется моей цели API выглядит как:
{"account":[{"account_id":"495"}]}
Это работает, но мой целевой API не ожидает, что объект account
будет иметь массив в качестве значения, и в настоящее время выдает мне 500 Internal Server Error, поэтому мой вопрос Как я могу получить значение свойства 'account'
, чтобы быть объектом, а не массив? Например, я хотел бы, чтобы тело запроса выглядело как:
{"account":{"account_id":"495"}}
Есть ли другой тип Map
, который можно использовать, который не принимает несколько значений?
Я все еще хотел бы если возможно, использовать метод exchange
.
Любая помощь по этому вопросу была бы грандиозной! Большое спасибо