You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中如何通过Retrofit向服务器发送字符串列表?

修复Retrofit发送字符串列表格式错误的问题

方案一:使用JSON请求体(推荐)

这种方式能直接保证JSON格式正确,前提是你的Retrofit已配置JSON转换器(比如GsonConverterFactory)。

  1. 创建请求体数据类
data class HoursRequest(
    val hours: List<String>
)
  1. 修改Api Service接口
    将原接口的RequestBody替换为自定义的数据类:
@POST("profile")
suspend fun postSubmitDrug(
    @Header("Authorization") token: String,
    @Body body: HoursRequest
): Response<ProfileData>
  1. 在Fragment中构造请求并发送
    直接传入字符串列表即可,Retrofit会自动序列化为符合要求的JSON:
val hoursRequest = HoursRequest(parentActivity.hourMinuteList)
// 调用接口发送请求
yourApiService.postSubmitDrug(token, hoursRequest)

最终发送的JSON格式会是:

{
  "hours": ["22:05","19:57"]
}

方案二:若必须使用Multipart表单提交

如果业务要求必须用表单提交,不要直接把列表转为字符串,而是逐个添加列表元素:

val multiPart = MultipartBody.Builder()
    .setType(MultipartBody.FORM)
    .addFormDataPart("_method", "post")

// 遍历列表,逐个添加表单项
parentActivity.hourMinuteList.forEach { hour ->
    multiPart.addFormDataPart("hours[]", hour)
}

requestBody = multiPart.build()

这样服务器会正确解析到带引号的字符串数组。

内容的提问来源于stack exchange,提问作者Dr.KeyOk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 17:40:37