首页 > 解决方案 > 如何在 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”字段?

标签: androidkotlinretrofitretrofit2multipartform-data

解决方案


您必须制作数据部分的模型,它应该看起来像这样:


 @Multipart
    @POST("request")
    Call<ResponseBody> upload(
        @Part("item1") RequestBody item1,
        @Part("item2") RequestBody item2,
        @Part("item3") RequestBody item3
    );

还有@PartMap Map<String, RequestBody> map


推荐阅读