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 - 如何在android中存储以前的 Activity 值?

django - 无法使用Cpanel/WHM连接到Centos7中的WSGI守护程序进程mod_wsgi

Apache 忽略具有多个 SSL 域的 documentroot

web-services - 如何在 API 和各种客户端之间创建全双工通信?

asp.net - ASP.NET 中分块传输的最佳响应大小是多少?

文件存在时 Android SDK "no such file"

android - 在我完全 root 的 Android 设备上执行 "su"失败

apache - 在 Apache 上设置 websocket?

java - HTTP代理可以修改TCP Java字节流吗?

android - 在 Android Studio 中更改资源路径