我正在调用客户端的下载服务,该服务会发回 MIME 数据并尝试保存 zip 文件。
该服务不仅返回文件本身,还返回其他几个 MIME 字段。因此,当我使用entity.getContent() 打开输入流时,我最终将所有这些数据写入我的zip 文件,而我只想写入一部分“有效负载”。我已经进行了搜索,但无论如何都没有看到从内容中仅获取一个单独的部分。
代码如下:
HttpResponse response = services.getFileByPayloadID("12345-abcde");
BufferedInputStream bis = null;
try {
bis = new BufferedInputStream(response.getEntity().getContent());
} catch (UnsupportedOperationException | IOException e) {
e.printStackTrace();
}
String filePath = "c:\\sample.zip";
BufferedOutputStream bos = null;
try {
bos = new BufferedOutputStream(new FileOutputStream(new File(filePath)));
int inByte;
while((inByte = bis.read()) != -1) {
bos.write(inByte);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {bis.close();} catch (Exception e) {}
try {bos.close();} catch (Exception e) {}
}
生成的文件内容如下所示。请注意,我只想将“Payload”的实际二进制内容写入文件。任何指示或建议将不胜感激!
----20170803161934
内容处置:表单数据;名称=“PayloadType”
X12_999_Response_005010X231A1
----20170803161934
内容处置:表单数据;名称=“处理模式”
批
----20170803161934
内容处置:表单数据;名称=“PayloadID”
12345-abcde
----20170803161934
内容处置:表单数据;名称=“时间戳”
2017-08-08T16:46:34Z
----20170803161934
内容处置:表单数据;名称=“CORERuleVersion”
2.2.0
----20170803161934
内容处置:表单数据;名称=“ReceiverID”
99000061
----20170803161934
内容处置:表单数据;名称=“SenderID”
肯尼亚医疗补助计划
----20170803161934
内容处置:表单数据;名称=“错误代码”
成功
----20170803161934
内容处置:表单数据;名称=“ErrorMessage”
----20170803161934
内容处置:表单数据;名称=“有效负载”
PK ÁIKšŽÌ*• * > 511257719_511257718_837P5010X12BATCH_99000061.199786.1.999.date»Â0E…ùNvB^lQJT1¥CéÀ§äÛkR)`O⁄Ç:–s‰ ¥×Ï´m∼_Ï4æ !æ±G!P+ËG䎕 * > 511257719_511257718_837P5010X12BATCH_99000061 .199786.1.999.datPK lñ
----20170803161934