android - 是否可以在多部分 POST 中有嵌套的 MultipartEntities 或 FormBodyPart?

标签 android apache http multipartentity

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

parameters: {"parameter1"=>"parameter1", "parameter2"=>{"sub_parameter1"=>"sub_parameter1", "sub_parameter2"=>"sub_parameter2"}}

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

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");

但是,子字段不携带。我刚刚得到:

parameters: {"parameter1"=>"parameter1", "parameter2"=>""}

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

最佳答案

一旦您了解了表单条目是如何通过 HTTP 连接传输的,您就会明白在多表单请求以及 url 编码请求中嵌套任何内容是不可能的。

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

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

[content (skipped)]
--- content-boundary ---

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

来源:

  1. 17.13.4 Form content types
  2. RFC 2045 Internet Message Bodies

关于android - 是否可以在多部分 POST 中有嵌套的 MultipartEntities 或 FormBodyPart?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16259989/

相关文章:

android - Facebook 登录关闭我的 Activity

linux - 使用 CentOS 6 对 WHM 进行 DDOS 攻击

带参数的http请求

api - RESTful API是否捕获了还原需求(软删除)

java - 如何保持小部件的JSONArray?

android - 使用Kotlin在Android Studio中创建按钮

android - 720 * 1280设备的布局

php - 使用不同端口上的php连接到mysql数据库

php - 非常基本的重写规则问题

php - 客户端缺少 Content-Disposition header