我正在将我的现有代码迁移到 Retrofit 2,但在理解 Multipart 请求的新语法方面遇到了一些困难。我还使用 Kotlin,尽管除了一些语法变化之外,我认为这对于这个特定的问题并不重要。
这是我目前的代码:
val audioDuration = RequestBody.create(null, audioDuration.toString())
val file = RequestBody.create(MediaType.parse("audio/mp4"),
File(context.filesDir, filename).absoluteFile)
sendAudioChunk(audioDuration, file).enqueue(callback)
以下是API的定义:
@Multipart
@POST("path_to_request")
fun sendAudioChunk(@Part("duration") audioDuration: RequestBody,
@Part("audio") audioBlob: RequestBody) : Call<ResponseObject>
在Retrofit 1.9中,我使用TypedString和TypedFile作为请求参数,现在看来需要使用OkHttp的RequestBody,但我肯定错过了什么,因为请求没有正确执行。