android - 如何在 Android 中使用 Retrofit 将复杂数据作为 MultiPart 发布?
问题描述
我有 Json 对象数组的数据,我需要将其作为 MultiPart 表单数据传递。我需要发布的数据如下:
{
"name": "KIMS EKM",
"latitude": "8.5605418",
"longitude": "76.8810471",
"state": "Kerala",
"district": "Thiruvananthapuram",
"city": "Leela Infopark",
"landmark": "Kazhakuttom",
"phone": "7293318484",
"email": "aswin.as@velosit.in",
"admin_name": "Aswin",
"admin_phone": "7293318484",
"admin_email": "aswin.a.s@velosit.in",
"departments": [{
"id": 1,
"is_sunday": 1
}, {
"id": 2,
"is_sunday": 1
}, {
"id": 3,
"is_sunday": 1
}, {
"id": 4,
"is_sunday": 1
}, {
"id": 5,
"is_sunday": 1
}, {
"id": 6,
"is_sunday": 1
}, {
"id": 7,
"is_sunday": 1
}, {
"id": 8,
"is_sunday": 1
}, {
"id": 9,
"is_sunday": 0
}, {
"id": 10,
"is_sunday": 0
}, {
"id": 11,
"is_sunday": 0
}],
"all_day_service": [3, 4, 5],
"emergency_services": [5],
"special_services": ["BPD", "HCDX"],
"accreditations": [2, 3]
}
在这里,确切的键用作多部分表单数据的参数。有图片需要发布,但真正的问题在下面描述。
我已经发布了 MultiPart 表单数据,但发布 json 对象数组是我觉得很难的。如何发布“departments”和“all_day_service”字段?
解决方案
您必须制作数据部分的模型,它应该看起来像这样:
@Multipart
@POST("request")
Call<ResponseBody> upload(
@Part("item1") RequestBody item1,
@Part("item2") RequestBody item2,
@Part("item3") RequestBody item3
);
还有@PartMap Map<String, RequestBody> map
推荐阅读
- ruby - 扩展(猴子修补)数组类和语法糖的二进制搜索
- python - 子进程调用打开 .txt 文件但不写入它
- javascript - 我可以通过将身份验证错误放入 HTTP 响应变量中来将身份验证错误返回到我的 EJS 页面,然后使用 AJAX 刷新我的模式吗?
- laravel - openssl_verify():不知道如何从生产服务器上的这个私钥获取公钥
- java - 使用具有百分比宽度的列时,GridPane 没有给标签足够的空间
- ios - 从文件应用程序拖放失败,出现 257 文件保护错误
- javascript - 当 Electron 应用程序停靠在屏幕右侧时,如何向左调整窗口大小?
- ag-grid - ag-grid 的“内置”过滤器选项是什么?
- sql-server - 从行中选择最大列
- mysql - 创建一个预订系统,但我很难将输入日期插入 MySQL 表