我正在將現有代碼庫遷移到Retrofit 2,但在理解Multipart請求的新語法時遇到了一些問題。我也在使用Kotlin,儘管除了一些語法上的改變之外,我認爲這個問題應該沒有關係。改進2多部分請求
這就是我現在所擁有的:
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>
在改造1.9我用TypedString和TypedFile的請求參數,現在看來一個需要使用OkHttp的RequestBody,但由於請求沒有正確執行,我必須丟失一些東西。
傑克沃頓商學院的解決方案這裏是這樣做的推薦方法; https://stackoverflow.com/questions/38507040/how-to-set-dynamic-filename 您可以使用包含文件名的MultipartBody.Part參數創建@Part參數。 –