在 Kotlin 多平台项目中使用 Ktor HttpClient 将文件作为二进制文件

问题描述

我有一个多平台项目,其中 api 代码在 iOS 和 Android 之间共享。

有"put" api 可以将本地音频文件上传为二进制文件

我已经按如下方式创建了 httpclient

 val client = HttpClient {
        defaultRequest {
            url {
                protocol = ServiceConfiguration.protocol
                host = ServiceConfiguration.baseUrl
                port = ServiceConfiguration.port
            }
            contentType(ContentType.Application.Json)
        }



        install(JsonFeature) {
            val json = kotlinx.serialization.json.Json {
                ignoreUnkNownKeys = true
                isLenient = true
            }
            serializer = KotlinxSerializer(json)
        }
    }

将对象放入api中,我是这样做的

val response = ServiceRequest.client.put<String>(
                body = File(path).readBytes()
            )

它工作正常并将字节数组上传到后端。但我想将文件上传为纯二进制文件,而不是字节数组。

为了更清楚,在 Postman mac 应用程序中,我们可以将文件上传为二进制文件。我需要做类似的事情。

当我检查 Ktor 时,它显示只有多部分表单数据可以作为二进制提交。但就我而言,它是 Put 请求。

请帮忙。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)