有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何将GZIP contentencoding应用于HTTP文件上载多部分/formdata POST

我有一个自定义的java控制台应用程序,我正在编写该应用程序,以将非二进制文件上载到我拥有的java应用程序服务器。它正在执行HTTPS多部分/表单数据POST,并将文件发送到RESTAPI。虽然它对小文件非常有效,但我希望将GZIP内容编码应用于post请求,以便更有效地处理大文件

是否有一个JAVA库可以用来gzip文章,包括文件内容,然后在另一边解压?我希望避免先压缩文件,而是依靠HTTP编码来处理它


共 (1) 个答案

  1. # 1 楼答案

    要学究的话,你不会把整篇文章都删掉。只需Gzip内容数据,然后在帖子中将内容编码设置为gzip

    你还没有发布你的代码(获取它???),因此,需要做出一些假设来给出一个例子:

    import java.util.zip.GZIPOutputStream;
    import java.io.ByteArrayOutputStream;
    ...
    
    final String yourData = "butts";
    final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    final GZipOutputStream gzipOutputStream;
    
    try {
        gzipOutputStream = new GZipOutputStream(byteArrayOutputStream);
        gzipOutputStream.write(yourData.getBytes("utf-8"));
    } finally {
        gzipOutputStream.close();
    }
    
    final byte[] gzippedButts = byteArrayOutputStream.toByteArray();
    
    /*
     * Now use the gzipped data as the data in your POST, and also
     * make sure to set the Content-Encoding of your HTTP POST to "gzip".
     */
    

    编辑:再次阅读这个问题,听起来OP想要一个库,它将抽象掉所有的处理,只需在引擎盖下Gzip一个请求体。不幸的是,我不知道有这样的图书馆