我正在学习使用 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 消息。任何建议以及这里可能出现的问题。
您没有调用 uploadUImage2(),而是调用此方法并传递多部分数据