gpt4 book ai didi

java - 如何对 org.w3c.dom.Document 进行压缩和 base64

转载 作者:太空宇宙 更新时间:2023-11-04 10:57:39 24 4
gpt4 key购买 nike

我有一个 org.w3c.dom.Document,必须对其进行压缩和 Base64 编码,才能通过 HTTP/HTTPS 使用 EBICS 协议(protocol)发送它我试过了

    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
Source xmlSource = new DOMSource(doc);
Result outputTarget = new StreamResult(outputStream);
TransformerFactory.newInstance().newTransformer().transform(xmlSource, outputTarget);
InputStream inflated_stream = new InflaterInputStream(new ByteArrayInputStream(outputStream.toByteArray()));
final byte[] bytes64bytes = Base64.encodeBase64(IOUtils.toByteArray(inflated_stream));
OrderData = new String(bytes64bytes);

但出现异常

java.util.zip.ZipException: incorrect header check
at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:164)
at java.io.FilterInputStream.read(FilterInputStream.java:107)
at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1025)
at org.apache.commons.io.IOUtils.copy(IOUtils.java:999)
at org.apache.commons.io.IOUtils.toByteArray(IOUtils.java:218)

最佳答案

我还没有尝试过这个,但是下面的方法不能满足您的需要吗?

OutputStream outputStream = new ZipOutputStream(new ByteArrayOutputStream());

我认为您的问题可能是由于使用了 InflaterInputStream - 您不是试图缩小这个流吗?如果您只需将 InflaterInputStream 更改为 DeflaterInputStream

,您的代码可能会起作用

关于java - 如何对 org.w3c.dom.Document 进行压缩和 base64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47221006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com