Closed etalcmyb369 closed 1 year ago
开发微信支付下载账单功能,想解压 gzip 数据出现异常,求做过的大佬指导下。
String params = UriComponentsBuilder.fromHttpUrl(downloadUrl).build().getQuery(); String urlSuffix = WxApiType.BILL_DOWNLOAD.toString().concat("?").concat(params); IJPayHttpResponse response = WxPayApi.v3( method, WxDomain.CHINA.toString(), urlSuffix, mch.getMchId(), mch.getMerchantCert().getSerialNo(), mch.getPlatFormCert().getSerialNo(), privateKey, body ); byte[] bytes = response.getBody().getBytes(StandardCharsets.UTF_8); try { GZIPInputStream gzipInputStream = new GZIPInputStream(new ByteArrayInputStream(bytes)); } catch (IOException e) { throw new RuntimeException(e); }
查到原因了 IJPayHttpResponse 返回的 body 字符串是已经从 byte[] 通过 new String() 转换过了 再使用 IJPayHttpResponse.getBody().getBytes(StandardCharsets.UTF_8) 转换的 byte[] 与原始的 gzip byte[] 不一致
IJPayHttpResponse
body
byte[]
new String()
IJPayHttpResponse.getBody().getBytes(StandardCharsets.UTF_8)
gzip byte[]
开发微信支付下载账单功能,想解压 gzip 数据出现异常,求做过的大佬指导下。