Android Retrofit 多部分请求分为两部分

问题描述 投票:0回答:1

我正在学习使用 Retrofit2 从 Android 应用程序进行 REST Api 调用。我有一个终点,它接受两个部分,如下所示:

    @Multipart
    @POST("user/personImageUpload5")
    suspend fun uploadUImage2(

        @Part(value = "person") person: PersonFull,
        @Part personImage: MultipartBody.Part
    ) : BaseResponseModel

当我用邮递员测试时,终点效果很好。

我已经在java中生成了postman代码片段并将其转换为kotlin,结果代码如下所示:

    var client =  OkHttpClient().newBuilder()
        .build();
    var mediaType = "text/plain".toMediaTypeOrNull();
    var body = MultipartBody.Builder().setType(MultipartBody.FORM)
        .addFormDataPart("person", null,
            RequestBody.create(
                "application/json".toMediaTypeOrNull(),
            Gson().toJson(personFull)))
        .addFormDataPart("productImage","/C:/Nazir/eclipseprojects/images/15224.jpeg",
                RequestBody.create(
                    "application/octet-stream".toMediaTypeOrNull(),
                    file))
                .build();
    var request = Request.Builder()
                .url(baseUrl + "user/personImageUpload5")
                .method("POST", body)
                .addHeader("Authorization", token)
                .build();
    return response = client.newCall(request).execute();

当我执行时,代码运行良好,直到实际执行请求的最后一行。处决在那里永远停留,什么也没有发生。 logcat 中也没有记录 okhttp 消息。任何建议以及这里可能出现的问题。

android kotlin retrofit2 okhttp multipartfile
1个回答
0
投票

您没有调用 uploadUImage2(),而是调用此方法并传递多部分数据

© www.soinside.com 2019 - 2024. All rights reserved.