我请求了沃尔玛报告API,结果将返回zip文件流。参考API文档,它给出了一个用Java代码实现的例子,如下所示:
if (response.getStatus() == Response.Status.OK.getStatusCode() && response.hasEntity()) {
InputStream inputStream = (InputStream)response.getEntity();
try {
String header = response.getHeaderString("Content-Disposition");
if(header != null && !("").equals(header)) {
if(header.contains("filename")){
//header value will be something like:
//attachment; filename=10000000354_2016-01-15T23:09:54.438+0000.zip
int length = header.length();
String fileName = header.substring(header.indexOf("filename="),length);
System.out.println("filenameText " + fileName);
String [] str = fileName.split("=");
System.out.println("fileName: " + str[1]);
//replace "/Users/anauti1/Documents/" below with your values
File reportFile = new File("/Users/anauti1/Documents/" + str[1].toString());
OutputStream outStream = new FileOutputStream(reportFile);
byte[] buffer = new byte[8 * 1024];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outStream.write(buffer, 0, bytesRead);
}
IOUtils.closeQuietly(inputStream);
IOUtils.closeQuietly(outStream);
}
}
}
catch (Exception ex){
System.out.print("Exception: " + ex.getMessage());
}
}
它会下载zip文件但文件数据已损坏。这可能是使用Java代码传输字节流之类的原因。这是如何转换字节流的问题。你能帮我吗?顺便说一句,我已将部分流剪切如下:
尚方宝剑之说
喵喔喔