当前位置: 首页 > 面试题库 >

Apache HttpClient制作多部分表单

蒯宏达
2023-03-14
问题内容

我对HttpClient非常满意,并且发现缺少(或公然不正确的)文档非常令人沮丧。我正在尝试使用Apache Http
Client实现以下文章(在下面列出),但不知道如何实际执行。下周我将把自己埋在文档中,但是也许更有经验的HttpClient编码人员可以早日给我答案。

发布:

Content-Type: multipart/form-data; boundary=---------------------------1294919323195
Content-Length: 502
-----------------------------1294919323195
Content-Disposition: form-data; name="number"

5555555555
-----------------------------1294919323195
Content-Disposition: form-data; name="clip"

rickroll
-----------------------------1294919323195
Content-Disposition: form-data; name="upload_file"; filename=""
Content-Type: application/octet-stream


-----------------------------1294919323195
Content-Disposition: form-data; name="tos"

agree
-----------------------------1294919323195--

问题答案:

使用HttpMime库中的
MultipartEntityBuilder 来执行所需的请求

在我的项目中,我这样做:

HttpEntity entity = MultipartEntityBuilder
    .create()
    .addTextBody("number", "5555555555")
    .addTextBody("clip", "rickroll")
    .addBinaryBody("upload_file", new File(filePath), ContentType.create("application/octet-stream"), "filename")
    .addTextBody("tos", "agree")
    .build();

HttpPost httpPost = new HttpPost("http://some-web-site");
httpPost.setEntity(entity);
HttpResponse response = httpClient.execute(httpPost);
HttpEntity result = response.getEntity();

希望这会有所帮助。

(已更新本文,以@mtomy代码为例,使用MultipartEntityBuilder而不是不推荐使用的MultipartEntity)



 类似资料:
  • 无论我怎么努力,似乎都无法解决这个问题。我正在提交此curl命令: 我有一个带有注释@RestController的Spring Boot 1.4应用程序,方法如下: filedata变量始终为null,请求对象始终显示0个文件。 我已经尝试了MultipartResolver的多种配置。这是我的最新消息: 我也在我的应用程序中手动粘贴了这些。属性,以确保其未被禁用: Springhttp。多部分

  • Spring CSRF不适用于带有文件上传的多部分表单。它适用于其他请求。我的web.xml如下所示- 我已经在appcontext servlet中定义了这个bean。xml- 我还定义了csrfFilter。定义了filterMultipartResolver bean后,我被重定向到默认的404页面。如果没有bean,我会得到一个错误页面,说我发送了一个空令牌。当我在chrome devel

  • 通常,我需要通过JSOUP将数据以响应multipart/form-data的形式发送到站点 作为一个示例,使用一个简单的窗体来sgeniriruet您的查询。 <表单操作=«localhost:8000»方法=«post»enctype=»多部分/表单数据» <输入类型=»文本»名称=»文本»值=»文本默认值» <输入类型=»文件»名称=»文件1» <输入类型=»文件»名称=»文件2» 提交 通

  • 我目前正在尝试解析我通过Chrome中的Postman插件发送的。然而,我得到的输出如下: 当我尝试调试时,会得到这个输出。当我尝试时,我得到一个空数组,所以我假设数据的格式不正确(只是一个字符串)。在我写我自己的算法之前,我想确定我没有用这个算法重新发明轮子。我做错什么了?或者,如果没有,是否存在一些CakePHP3函数来处理这个问题? 更新 我发现了代码中的错误,路由过程似乎以某种方式将pos

  • 我有一个NodeJs/React应用程序。用例是上传一个文件,让第三方API扫描它,然后如果成功保存相同的文件。在扫描完成之前,我们无法保存文件。 我们正在使用fetch方法从react以多部分formdata的形式上载该文件。一旦在节点中接收到文件。js访问文件并检查文件大小和类型,我们使用multer如下。 现在scanapi希望我们也将文件作为多部分表单数据发送。在此场景中,如何使用req中

  • 我正试图弄明白这一点。我的代码没有收到任何有用的错误消息,所以我使用了其他东西来生成一些东西。我在错误信息后附加了该代码。我已经找到了一个关于它的教程,但我不知道如何用我所拥有的实现它。这就是我目前拥有的: 错误: 对象{消息:“此资源不支持请求实体的媒体类型‘multipart/form data’。”,例外消息:“没有MediaTypeFormatter可用于读取媒体类型为“multipart