我注意到当我使用以下库在Java应用程序中接收文件时:
compile group: 'org.apache.httpcomponents', name: 'httpcore-nio', version: '4.4.5'
compile group: 'org.apache.httpcomponents', name: 'httpcore', version: '4.4.5'
compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.2'
compile group: 'org.apache.httpcomponents', name: 'httpmime', version: '4.5.2'
我注意到文件的顶部会有各种标题,例如
--dVb9w156wIo3LdB-AjdoAEyD0yNsn9
Content-Disposition: form-data; name="file"; filename="SendFile.html"
Content-Type: application/octet-stream
<!doctype html> <!-- now the actual file begins -->
我正在使用此构建器发送
HttpEntity requestEntity = MultipartEntityBuilder.create().setLaxMode()
.setContentType(ContentType.TEXT_HTML).addBinaryBody("file", out).build();
因此标题应位于laxMode()
HttpMultipartMode.BROWSER_COMPATIBLE
,并且实际上确实从文件本身中删除了一些标题,但Content-Disposition
和Content-Type
仍然存在。
如何(在客户端)我写出来时,我如何确保只写文件的正文:
try (OutputStream os = new FileOutputStream(tmp)) {
e.writeTo(os);
}
一些注意事项:
.writeTo()
正文,而不是整个事情。