gpt4 book ai didi

java - 使用 java MultipartEntityBuilder 上传文件抛出内容太长。有什么替代方案吗?

转载 作者:行者123 更新时间:2023-11-30 06:32:30 24 4
gpt4 key购买 nike

我正在尝试制作一个小实用程序来同步两个服务器之间的数据。大多数调用都是使用 JSON 的 REST 调用,因此我决定使用 Apache HttpClient 来实现此目的。然而,有一个部分我需要上传文件。我尝试使用带有 MutipartEntityBuilder 的多部分表单数据来执行此操作,但遇到内容太长的问题。 (我也尝试过对文件的内容进行 gzip 压缩,但仍然超出了限制)。

这是我的java代码:

        HttpPost request = new HttpPost(baseUrl+URL);
MultipartEntityBuilder builder = MultipartEntityBuilder.create();

//create upload file params
builder.addTextBody("scanName", "Test upload");
builder.addBinaryBody("myfile", f);

HttpEntity params= builder.build();

request.setEntity(params);

request.addHeader("content-type","multipart/form-data");

HttpResponse response = httpClient.execute(request);

我应该在文件上传部分使用更好的替代方案吗?我还将从其中一台服务器下载文件。当我尝试处理这些回复时,我会遇到类似的问题吗?

我是不是做错了什么?

最佳答案

我尝试使用您的代码并发送一些大小约为 33MB 的文件,并且成功了。所以,我认为你的问题是以下之一:

  1. 创建的 http 客户端对请求大小有限制 - 在这种情况下,您需要更改客户端的属性或使用其他客户端;

  2. 在一些和平的代码中,您调用 HttpEntity.getContent() 方法。对于此方法的多部分请求存在限制 - 25kB。对于这种情况,您需要使用 writeTo(OutputStream) 而不是 getContent()

在评论中你提到了swagger,但我不明白它是什么意思。如果你使用 swagger 生成的 api,那么问题可能发生在他们的代码中,你需要修复生成逻辑(或者类似的东西 - 我从来没有使用过 swagger)

希望我的回答对您有帮助

关于java - 使用 java MultipartEntityBuilder 上传文件抛出内容太长。有什么替代方案吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45813031/

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