gpt4 book ai didi

java - 如何使用 RestTemplate 调用 MultipartFile Spring REST URL

转载 作者:搜寻专家 更新时间:2023-11-01 01:21:43 30 4
gpt4 key购买 nike

当我尝试使用我的 Spring 模板基本测试方法调用以下 MultipartFile Spring REST url 时,出现以下异常。我怎样才能使这个正确。谢谢。

Spring REST 网址:

 @RequestMapping(value = "/media/uploadMultipartFile/{token}/{title}/{trailId}/{wpId}", method = RequestMethod.POST)
public @ResponseBody MediaHttp uploadMultipartFile(@RequestParam MultipartFile file,
@PathVariable String token,
@PathVariable String title,
@PathVariable String trailId,
@PathVariable String wpId,
HttpServletResponse response)

测试方法:

try {

// Message Converters
List<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>();
messageConverters.add(new FormHttpMessageConverter());
messageConverters.add(new SourceHttpMessageConverter<Source>());
messageConverters.add(new StringHttpMessageConverter());
messageConverters.add(new MappingJacksonHttpMessageConverter());

// RestTemplate
RestTemplate template = new RestTemplate();
template.setMessageConverters(messageConverters);

// URL Parameters
MultiValueMap<String, Object> parts = new LinkedMultiValueMap<String, Object>();
parts.add("token", "nkc2jvbrbc");
parts.add("title", "test mp4 file");
parts.add("trailId", "2");
parts.add("wpId", "7");
parts.add("file", new FileSystemResource("C:\\Users\\Public\\Pictures\\Sample Pictures\\test.mp4"));

// Post
MediaHttp result = template.postForObject(Constants.APPLICATION_URL + "/media/uploadMultipartFile/{token}/{title}/{trailId}/{wpId}", parts, MediaHttp.class);

} catch (Exception e) {
System.out.println("Error: " + e.getMessage());
}

异常:

[ http://test.com:8080/DMW-skeleton-1.0/media/uploadMultipartFile/ 中的变量值数量无效{token}/{title}/{trailId}/{wpId}]:预期为 4;得到0

最佳答案

消息很清楚,您没有指定任何提交的路径参数。您只需提供一张 map ,该 map 将作为请求的正文发送。

更改您的调用以将这些参数包含在方法调用的最后一部分。

// URL Parameters
MultiValueMap<String, Object> parts = new LinkedMultiValueMap<String, Object>();
parts.add("file", new FileSystemResource("C:\\Users\\Public\\Pictures\\Sample Pictures\\test.mp4"));
// Post
MediaHttp result = template.postForObject(Constants.APPLICATION_URL + "/media/uploadMultipartFile/{token}/{title}/{trailId}/{wpId}", parts, MediaHttp.class, "nkc2jvbrbc", "test mp4 file", "2", "7);

关于java - 如何使用 RestTemplate 调用 MultipartFile Spring REST URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20467965/

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