我们可以将请求正文列表发送到改造中的 api 调用,如下所示
@POST("task/updatedropoff")
@Multipart
fun taskUpdateDropOff(
@Header("apikey") token: String,
@PartMap user: HashMap<String, RequestBody>,
@Part image1: MultipartBody.Part? = null,
): Call<BaseClass<String>>?
我们如何发送与请求主体列表相同的部件列表?
我已经在retrofit库、android和stack中搜索过,但没有解决。
您可以使用
@Part List<MultipartBody.Part>
发送零件列表。列表的每个部分可以代表不同的文件或数据。关键是为您要发送的每个项目构建一个 MultipartBody.Part
对象列表。
下面是如何上传的示例。
interface ApiService {
@Multipart
@POST("upload")
suspend fun uploadFiles(
@Part files: List<MultipartBody.Part>
): Response<ResponseBody>
}
用于创建列表:
fun createMultipartList(fileUris: List<Uri>, context: Context): List<MultipartBody.Part> {
val parts = mutableListOf<MultipartBody.Part>()
fileUris.forEach { uri ->
val file = File(uri.path)
val requestBody = file.asRequestBody("multipart/form-data".toMediaTypeOrNull())
val part = MultipartBody.Part.createFormData("file", file.name, requestBody)
parts.add(part)
}
return parts
}