webservice返回一个InputStream形式的MIME文件,其中包含以下内容。我使用Java Apache HTTPClient来发出一个请求:
MIME-Version:1.0
Content-Type:multipart/mixed;
boundary="----=_Part_58_1750763977.1605815692305"
------=_Part_58_1750763977.1605815692305
Content-Type: application/octet-stream; name=preview.pdf
Content-ID: response-1
Content-Disposition: attachment; filename=preview.pdf
%PDF-1.7
[...]------=_Part_67_626667127.1605818243111
Content-Type: application/octet-stream; name=thumbnail.jpg
Content-ID: response-2
Content-Disposition: attachment; filename=thumbnail.jpg------=_Part_58_1750763977.1605815692305
Content-Type: application/octet-stream; name=report.xml
Content-ID: response-3
Content-Disposition: attachment; filename=report.xml现在如何将这些块转换为单个文件?我尝试了javax.Mail和MIME文件,但没有成功。
发布于 2020-11-21 19:32:41
我设法将邮件解析为mime,并将附件另存为文件:
HttpResponse response = client.execute(post);
Session s = Session.getInstance(new Properties());
MimeMessage myMessage = new MimeMessage(s, response.getEntity().getContent());
Multipart multipart = (Multipart) myMessage.getContent();
for (int i = 0; i < multipart.getCount(); i++) {
BodyPart bodyPart = multipart.getBodyPart(i);
InputStream is = bodyPart.getInputStream();
File f = new File("tmp/" + bodyPart.getFileName());
FileOutputStream fos = new FileOutputStream(f);
byte[] buf = new byte[4096];
int bytesRead;
while((bytesRead = is.read(buf))!=-1) {
fos.write(buf, 0, bytesRead);
}
fos.close();
}通过使用
compile([group: 'tech.blueglacier', name: 'email-mime-parser', version: '1.0.5'])https://stackoverflow.com/questions/64919690
复制相似问题