是否可以在多部分POST中使用嵌套的MultipartEntities或FormBodyPart?

Col*_*han 13 apache android http multipartentity

我正在尝试使用MultipartEntity创建以下服务器POST请求:

parameters: {"parameter1"=>"parameter1", "parameter2"=>{"sub_parameter1"=>"sub_parameter1", "sub_parameter2"=>"sub_parameter2"}}
Run Code Online (Sandbox Code Playgroud)

我目前正在使用类似的东西:

multipartEntity.addPart("parameter1", new StringBody("parameter1"));

FormBodyPart parameter2 = new FormBodyPart("parameter2", new StringBody("")); // It wouldn't allow a null ContentBody

parameter2.addField("sub_parameter1", "sub_parameter1");
parameter2.addField("sub_parameter2", "sub_parameter2");
Run Code Online (Sandbox Code Playgroud)

但是,子字段不会携带.我得到:

parameters: {"parameter1"=>"parameter1", "parameter2"=>""}
Run Code Online (Sandbox Code Playgroud)

如何在MultipartEntity或它包含的FormBodyPart元素中创建嵌套结构?

len*_*nik 6

一旦你看到表单条目是如何通过HTTP连接传输的,你就会明白用multiform请求以及url编码的请求嵌套任何东西都是不可能的.

事情很简单.多部分表单请求的格式为:

--- content-boundary ---
Content-Disposition: form-data; name="form_data_name"

[content (skipped)]
--- content-boundary ---
Run Code Online (Sandbox Code Playgroud)

而已.有以下格式的单个数据表单条目流:[表单条目名称] - > [表单条目内容],对表单中的每个条目重复.它不是递归的,因此可能没有任何嵌套结构.

资料来源:

  1. 17.13.4表单内容类型
  2. RFC 2045 Internet消息体