【发布时间】:2016-05-03 23:57:31
【问题描述】:
我正在使用 Spring 4.0 为 RESTFUL Web 服务创建 POC。 要求从 REST WEB-Service 接收 MultipartFile 作为响应。
REST 服务控制器
@RequestMapping(value="/getcontent/file", method=RequestMapping.post)
public MultipartFile getMultipartAsFileAsObject() {
File file = new File("src/test/resources/input.docx");
FileInputStream input = new FileInputStream(file);
MultipartFile multipartFile = new MockMultipartFile("file",file.getName(),
"application/docx", IOUtils.toByteArray(input));
return multipartFile
}
我也使用第三方客户端和 Apache Http 客户端调用此服务。请查看输出。
使用第三方 REST 客户端,即。邮递员
输出看起来像 Json -
{
"name" : "file",
"originalfilename" : "sample.docx",
"contentType" : "application/docx",
"content" : [
82,
101,
97,
100,
101,
32,
32,
.
.
.
.
.
]
}
Apache HTTP 客户端示例代码
private static void executeClient() {
HttpClient client = new DefaultHttpClient();
HttpPost postReqeust = new HttpPost(SERVER_URI);
try{
// Set Various Attributes
HttpResponse response = client.execute(postReqeust) ;
//Verify response if any
if (response != null)
{
InputStream inputStream = response.getEntity().getContent();
byte[] buffer = new byte[inputStream.available()];
inputStream.read(buffer);
OutputStream outputStream = new FileOutputStream
(new File("src/main/resource/sample.docx"));
outputStream.write(buffer);
outputStream.flush();
outputStream.close();
}
}
catch(Exception ex){
ex.printStackTrace();
}
Apache Http 客户端的输出
文件正在创建,但它是空的。 (0 字节)。
【问题讨论】:
-
outputStream.write(buffer);outputStream.flush();outputStream.close(); -
我也试过了,但仍然创建了 0 字节的文件。
-
这可能会有所帮助.. stackoverflow.com/a/12251265/1457942