【发布时间】:2020-07-10 14:26:20
【问题描述】:
我正在使用以下代码发送包含多参数类型的 post multipart 请求:
@Multipart
@POST("**")
fun sendRequest(
@Part("ContactType") contactType: RequestBody? = null,
@Part("Description") description: RequestBody? = null,
@Part("ServiceProviderId") serviceProviderId: RequestBody? = null,
@Part("Title") title: RequestBody? = null,
@Part("Latitude") latitude: RequestBody? = null,
@Part("Mobile") mobile: RequestBody? = null,
@Part("Longitude") longitude: RequestBody? = null,
@Query("MainActivities[]") mainActivities :ArrayList<String>,
@Part("Files") files: List<MultipartBody.Part>
): Observable<SendRequestResponse>
我是这样设置值的:
val titleBody = createBodyRequestFromString(title.value ?: "")
val latitudeBody = createBodyRequestFromString(lat.value ?: "")
val longitudeBody = createBodyRequestFromString(lng.value ?: "")
val contactTypeBody = createBodyRequestFromString(contactType.value.toString() ?: "")
val serviceProviderIdBody = createBodyRequestFromString(serviceProviderId.value ?: "")
val mobileBody = createBodyRequestFromString(phoneNumber.value ?: "")
val mainActivitiesBody: ArrayList<RequestBody> = ArrayList()
createBodyRequestFromString(mainActivities.value?.get(0)).let { mainActivitiesBody.add(it) }
private fun createBodyRequestFromString(string: String?): RequestBody {
return RequestBody.create("text/plain".toMediaTypeOrNull(), string!!)
}
private fun addFileAsMultipart() {
val imagesParts = ArrayList<MultipartBody.Part>(selectedImages.size)
selectedImages.forEachIndexed { index, file ->
val requestBody = RequestBody.create("image/jpeg".toMediaTypeOrNull(), file)
imagesParts.add(
MultipartBody.Part.createFormData(
"files",
file.name,
requestBody
)
)
}}
它一直在说:
使用 MultipartBody.Part 的@Part 参数不得在注释中包含部件名称。 (参数#10)
当我退出文件时,后端无法获取我的 RequestBody 值。
如何发送包含字符串数组和文件数组的多部分?
【问题讨论】:
-
\\如果我的答案有效..请将其标记为已接受的答案..提前致谢