gpt4 book ai didi

android - 如何发送包含字符串数组和文件数组的多部分

转载 作者:行者123 更新时间:2023-12-02 13:31:43 25 4
gpt4 key购买 nike

我正在使用以下代码发送包含多个参数类型的后期多重请求:

    @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
)
)
}}

它一直在说:

@Part parameters using the MultipartBody.Part must not include a part name in the annotation. (parameter #10)



当我走出文件时,后端无法获取我的RequestBody值。

如何发送包含字符串数组和文件数组的多部分内容?

最佳答案

试试这个tutorial帮助我很多

按照本教程..您必须更改
这条线

@Part("Files") files: List<MultipartBody.Part> //kotlin
@Part("Files) List<MultipartBody.Part> files //java

用这条线
@Part files: List<MultipartBody.Part> //kotlin
@Part List<MultipartBody.Part> files //java

并改变这条线
MultipartBody.Part.createFormData("files",file.name,requestBody)

用这条线
MultipartBody.Part.createFormData("files[]",file.name,requestBody)

我希望它能起作用^ _ ^

关于android - 如何发送包含字符串数组和文件数组的多部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60926818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com