小编Gog*_*l31的帖子

在java中使用GZIPOutputStream发送压缩块

我试图通过 java 套接字发送压缩的 HTML 文件,但浏览器显示一个空的 HTML 文件。

问题是,当我尝试发送未压缩的 HTML 时,发现一切正常(是的,我确实相应地修改了 HTTP 标头)。

private void sendResponse(String headers, String body) throws IOException
{   
    BufferedOutputStream output = new BufferedOutputStream(
        this.SOCKET.getOutputStream());
    byte[] byteBody = null;

    // GZIP compression
    if(body != null && this.encoding.contains("gzip"))
    {
        ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
        GZIPOutputStream zipStream = new GZIPOutputStream(byteStream);
        zipStream.write(body.getBytes(this.charset));
        zipStream.flush();
        byteBody = byteStream.toByteArray();
        byteStream.flush();
        byteStream.close();
        zipStream.close();
    }
    else
        byteBody = body.getBytes(this.charset);

    // Sending response
    byte[] msg1 = (Integer.toHexString(byteBody.length) + "\r\n")
        .getBytes(this.charset);
    byte[] msg2 = byteBody;
    byte[] msg3 = …
Run Code Online (Sandbox Code Playgroud)

java http gzipoutputstream

3
推荐指数
1
解决办法
7644
查看次数

标签 统计

gzipoutputstream ×1

http ×1

java ×1