gpt4 book ai didi

java - 我如何使用 Spring 的 RestTemplate 执行与此 curl 命令等效的操作?

转载 作者:行者123 更新时间:2023-11-30 11:24:53 27 4
gpt4 key购买 nike

我使用以下方法成功地将文件发布到同一个网络服务:

curl -X POST http://<someUrl> -F "file=@/path/to/aFile.txt"

现在我正尝试使用 Spring 的 RestTemplate 执行相同类型的操作,但需要注意的是我要发送 Java 对象。这是我尝试过的示例:

File file = File.createTempFile("aaa","bbb");
FileUtils.writeStringToFile(file, mapper.writeValueAsString(message), "UTF-8");

MultiValueMap<String, Object> values = new LinkedMultiValueMap<String, Object>();
values.add("file", new FileSystemResource(file));

restTemplate.postForObject(URL, values, String.class);

其中 mapper 是 Jackson 的 ObjectMapper (v1.9.6) 的实例,而 FileUtils 来自 Apache 的 Common。

REST 服务要求内容类型为 multipart/form-data,所以我试图做的是将 Java 对象作为 JSON 字符串写入临时文件,然后发布临时文件。很遗憾,我遇到了 HTTP 500 内部服务器错误。

我做错了什么?有关如何执行此操作的任何建议?

最佳答案

看来我解决了。这是我做的供引用:

File file = File.createTempFile("aaa","bbb");
FileUtils.writeStringToFile(file, mapper.writeValueAsString(message), "UTF-8");

MultiValueMap<String, Object> values = new LinkedMultiValueMap<String, Object>();
values.add("name", file.getAbsolutePath());
values.add("filename", file.getAbsolutePath());
values.add("file", new FileSystemResource(file));

restTemplate.postForObject(URL, values, String.class);

关于java - 我如何使用 Spring 的 RestTemplate 执行与此 curl 命令等效的操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20527735/

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