【问题标题】:How to pass pdf form-data body with Retrofit2如何使用 Retrofit2 传递 pdf 表单数据正文
【发布时间】:2021-10-12 18:17:22
【问题描述】:

我想使用 Retrofit2 上传包含其他字段的 pdf 文件。但我不知道如何为其创建请求正文。

  @POST("filebase/upload")
suspend fun uploadPdfDocument(@Header(HEADER_AUTHORIZATION) authorization: String, @Body requestBody: RequestBody): UploadPdfDocumetResponse?

请帮帮我!

【问题讨论】:

标签: android kotlin retrofit2


【解决方案1】:

如果你的依赖中存在 okhttp3 那么你可以使用这个漂亮的扩展功能

import okhttp3.RequestBody.Companion.asRequestBody

yourPdfFile.asRequestBody(yourPdfFile.getExtension())

getExtension()下面的函数

fun File.getExtension(): MediaType? {
    var type: String? = null
    val encoded: String = try {
        URLEncoder.encode(name, "UTF-8").replace("+", "%20")
    } catch (e: Exception) {
        name
    }
    val extension = MimeTypeMap.getFileExtensionFromUrl(encoded)
    if (extension != null) {
        type = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension)
    }

    return type?.toMediaType()
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-12
    • 2023-04-03
    • 2012-01-15
    • 1970-01-01
    • 1970-01-01
    • 2013-08-06
    • 1970-01-01
    相关资源
    最近更新 更多