gpt4 book ai didi

java - 在不使用 LinkedMultiValueMap 的情况下将请求正文传递给 Spring Rest 模板

转载 作者:行者123 更新时间:2023-12-01 18:50:06 27 4
gpt4 key购买 nike

我正在使用 Spring Rest 模板发出 Http PUT 请求,到目前为止,我一直使用以下内容传递请求正文:

        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 内部服务器错误,所以,我的问题是,我该如何获取 'account' 属性的值作为对象而不是数组?例如,我希望请求正文显示为:

{"account":{"account_id":"495"}}

是否可以使用另一种不接受多个值的Map类型?

如果可能的话,我仍然想使用exchange方法。

任何关于这方面的帮助都会很棒!非常感谢

最佳答案

答案实际上只是使用常规的 HashMap 而不是 MultiValueMap。如此处所示,当您想要将数组添加到请求正文中的单个键时,将使用 MultiValueMap 情况。感谢您的所有帮助。

关于java - 在不使用 LinkedMultiValueMap 的情况下将请求正文传递给 Spring Rest 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59754242/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com