Java 如何使用Spring';什么是REST模板?
我使用以下方法成功地将文件发布到同一web服务:Java 如何使用Spring';什么是REST模板?,java,json,spring,curl,resttemplate,Java,Json,Spring,Curl,Resttemplate,我使用以下方法成功地将文件发布到同一web服务: curl -X POST http://<someUrl> -F "file=@/path/to/aFile.txt" curl-xpost http://-F“file=@/path/to/aFile.txt” 现在,我正试图使用Spring的RestTemplate执行相同类型的操作,但需要注意的是,我要发送一个Java对象。下面是我尝试的一个例子: File file = File.createTempFile("aaa",
curl -X POST http://<someUrl> -F "file=@/path/to/aFile.txt"
curl-xpost http://-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);
File File=File.createTempFile(“aaa”、“bbb”);
FileUtils.writeStringToFile(文件,mapper.writeValueAsString(消息),“UTF-8”);
多值映射值=新链接的多值映射();
添加(“文件”,新文件系统资源(文件));
postForObject(URL、值、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);
File File=File.createTempFile(“aaa”、“bbb”);
FileUtils.writeStringToFile(文件,mapper.writeValueAsString(消息),“UTF-8”);
多值映射值=新链接的多值映射();
add(“name”,file.getAbsolutePath());
add(“filename”,file.getAbsolutePath());
添加(“文件”,新文件系统资源(文件));
postForObject(URL、值、String.class);
500是服务器端错误。您必须检查服务器上的日志。我知道这是服务器端错误。这是一个我无法控制也无法访问的外部服务。我希望有人能够帮助我使用RestTemplate将成功的curl命令“转换”为等效命令。