HttpResponse.Flush 方法

本文介绍了HttpResponse.Flush方法,该方法可向客户端发送当前所有缓冲的输出,在请求处理中可多次调用,大数据量时能实时显示数据加载情况。还提及若Respose.Buffer属性未设为True,调用该方法可能出错,虽有人认为现在少用,但codeproject上很多程序仍在使用。

HttpResponse.Flush 方法

向客户端发送当前所有缓冲的输出。

备注

将当前所有缓冲的输出强制发送到客户端。在请求处理的过程中可多次调用 Flush

在大数据量的时候可以实时显示数据加载的情况。

有人说:

如果Respose.Buffer屬性未設置成True,則調用Flush方法運行時將產生錯誤。

我还没有验证过

有人说:

数据大的时候用,,,,,,,
现在基本没有人用啦.....

但是我看codeproject上的很多程序在用

估计在大数据量的时候还是很有用的吧

// 设置当前线程的用户信息 ThreadSession.setCurUser(userInfoBean); // 初始化检查结果为false boolean checkResult = false; // 初始化压缩输入流和文件输出流 ZipInputStream zipIntputStream = null; FileOutputStream fileOutputStream = null; FileOutputStream fos = null; ZipEntry zipEntry; // 创建临时文件 File bin1File = FileUtil.createTempFile(UUIDTool.getUUID() + File.separator + "bin1.bin"); File dFile = FileUtil.createTempFile(UUIDTool.getUUID() + File.separator + "system-ws63-liteos-app-iot-sign.bin"); File oemFile = FileUtil.createTempFile(UUIDTool.getUUID() + File.separator + "oem-ws63-liteos-app-iot-sign.bin"); File lzmaFile = FileUtil.createTempFile(UUIDTool.getUUID() + File.separator + "ota2.lzma"); // 下载固件包 try (ByteArrayOutputStream byteOutputStream = new ByteArrayOutputStream()) { fos = new FileOutputStream(lzmaFile); // 下载固件包里的bin文件 boolean downloadFlag = fileIoComponent.download(byteOutputStream, firmwareCheckInfoVo.getFileId(), ""); if (!downloadFlag) { LOGGER.info("checkFirmwarePackage 下载固件包失败:" + firmwareCheckInfoVo.getProductId()); throw new ECOException("下载临时文件失败"); } zipIntputStream = new ZipInputStream(new ByteArrayInputStream(byteOutputStream.toByteArray())); long totalSize = 0L; // 解析压缩文件 while ((zipEntry = zipIntputStream.getNextEntry()) != null) { String fileName = zipEntry.getName(); // zipEntry获取name的时候会包含根目录,eg.:“package/filelist.json”,需要去除目录层 String realFileName = StringUtils.contains(fileName, "/") ? StringUtils.substringAfterLast(fileName, "/") : fileName; // 获取文件后缀 if (StringUtils.equals("image2_all_ota1.bin", realFileName)) { fileOutputStream = new FileOutputStream(bin1File); doWriteMethod(zipIntputStream, totalSize, fileOutputStream); fileOutputStream.flush(); } } // 解码bin1文件 decodeBin1File(bin1File, fos); // 解压缩lzma文件 unLzmaZip(lzmaFile, dFile); // 计算文件的sha256值 String dFileSha256 = SecureUtil.sha256(FileUtils.readFileToString(dFile, "UTF-8")); // 从OEM拿包 String oemUrl = getFirmwareFileFromOem(firmwareCheckInfoVo.getProductId()); // 获取oem文件的sha256 HttpResponse httpResponse = HttpsSslUtils.validateCertificate(HttpRequest.get(oemUrl)).execute(); FileUtils.writeByteArrayToFile(oemFile, httpResponse.bodyBytes()); String oemFileSha256 = SecureUtil.sha256(FileUtils.readFileToString(oemFile, "UTF-8")); // 比较两个文件的sha256值是否一致 if (StringUtils.equals(dFileSha256, oemFileSha256)) { checkResult = true; } else { LOGGER.error("checkFirmwarePackage 解析出来的文件和OEM的文件不一致!"); } // 保存检查结果 saveSdkResult(firmwareCheckInfoVo, checkResult);
10-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值