当前位置: 首页 > 知识库问答 >
问题:

如何将GZIP内容编码应用于HTTP文件上传多部分/表单数据POST

柴阳云
2023-03-14

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

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

共有1个答案

鲁鹏
2023-03-14

迂腐地说,你不会压缩整个帖子。您只需Gzip内容数据,然后在POST中将内容编码设置为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一个请求体。不幸的是,我不知道有这样的图书馆。

 类似资料:
  • 我正在尝试在 Java 应用程序中设置一个 Apache Camel 路由,其中使用者终结点是一个 restlet 组件,它将 HTTP 文件上传作为多部分表单数据的 POST 进行处理,然后创建者终结点将请求转发到也接受多部分表单数据的 rest 服务。我是骆驼的新手,不知道如何正确地连接它。以下是到目前为止我的路线。我是否需要对正文进行任何转换,还是会按原样转发多部分表单数据?有人可以为我提供

  • 问题内容: 我是angular.js的初学者,但是对基础知识有很好的了解。 我要做的是上传文件和一些表单数据作为多部分表单数据。我读到这不是angular的功能,但是3rd party库可以做到这一点。我已经通过git克隆了angular-file-upload,但是仍然无法发布简单的表单和文件。 有人可以提供如何执行此操作的示例,html和js吗? 问题答案: 首先 您无需对结构进行任何特殊更改

  • 在将FreshDesk集成到我的产品中时,我被用附件API创建票证所困扰。我使用高级Rest客户端测试API。我已经看到了许多关于栈溢出本身的论坛和问题,但我仍然对任何关于上传文件的多部分形式数据POST请求的回答不满意。 我想知道Advanced Rest Client中所需的请求格式以及标题 到目前为止,这是我正在使用的请求,但我没有得到正确的响应:

  • 我想从Perl向REST API服务发出一个POST请求。作为POST表单参数,服务需要一个多部分编码的文件。 我写了上面的代码。但是显然REST服务器无法理解POST请求,因为我只将文件路径发送到REST服务,而不是多部分编码的文件内容。有人能告诉我如何使文件多部分编码并将其作为POST请求发送到REST服务,而REST服务期望多部分编码的文件作为表单参数吗? 作为补充说明,我实际上想编写与下面

  • 问题内容: 我有一个代码库,当前使用Post上传文件,并具有enctype作为multipart / form- data。现在,我需要包括一些表单项,即一些参数也将随文件上传一起传递。我已经创建了html表单,但是我不能使用request.getParameter,因为它是一个多部分表单。谁能建议我如何将参数与上传文件一起传递。我提供以下代码。请根据我的代码的兼容性建议我如何解决 问题答案: 如