You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Spring Rest Template在请求体中发送List

解决List作为JSON请求体发送的异常问题

我来帮你梳理下问题并修正代码——你现在的核心问题是请求体的封装逻辑不对,导致没法正确把List序列化成符合要求的JSON格式。

问题分析

你原来的代码里错误地用MultiValueMap<List, String>来包裹文件名List,这完全没必要:MultiValueMap是用来处理表单数据或多值参数的,而我们需要的是把List直接序列化为JSON数组,所以直接将List作为请求体的主体就可以了。

修正后的代码

def demo(def url, def returnObject, List filenames) {
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_JSON);
    
    // 直接将List作为请求体内容,无需嵌套MultiValueMap
    HttpEntity<List<String>> request = new HttpEntity<>(filenames, headers);
    
    return methodcall.postForObject(url, request, returnObject);
}

关键说明

  • 当你把请求头的ContentType设为APPLICATION_JSON后,RestTemplate会自动将List序列化为["file1.txt", "file2.jpg", ...]这样标准的JSON数组格式,完全满足接口的JSON请求体要求。
  • 只要你的methodcall是合法的RestTemplate实例,这段代码就能正常运行,不会再出现序列化异常。

内容的提问来源于stack exchange,提问作者java

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 03:59:24