【问题标题】:Which Ktor method is correct -- append() or buildPacket()?哪种 Ktor 方法是正确的 - append() 或 buildPacket()?
【发布时间】:2021-12-30 15:47:20
【问题描述】:

我正在尝试将图像文件上传到服务器,并且一直在使用此方法将二进制文件字节“附加”到消息中。 'srcBitmap' 是一个包含图像字节的 byteArray。

    formData = formData {
        append("image", srcBitmap, Headers.build {
            append(HttpHeaders.ContentType, "image/jpg")
            append(HttpHeaders.ContentDisposition, "filename=image.jpg")
                })

在网络上的其他示例中,他们就是这样做的。

    formData {
        appendInput(key = ICON_FILE_PART, headers = Headers.build {
            append(HttpHeaders.ContentDisposition, "filename=${appId}_ic")
        }) {
            buildPacket { writeFully(icon.toByteArray()) }
        }
    }) 

这两种方式(追加与'buildPacket')有什么区别?为什么要使用一个而不是另一个?

【问题讨论】:

    标签: android kotlin http ktor


    【解决方案1】:

    这些只是制作多部分二进制部分的不同方法。使用buildPacket,您可以构建任意字节数据包而不知道它们的大小。如果您需要从文件创建二进制部分,那么我建议使用第一个选项,因为它简单易懂。

    【讨论】:

      猜你喜欢
      • 2015-04-24
      • 2022-11-17
      • 2012-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-23
      相关资源
      最近更新 更多