Http“ multipart / form-data”与原始二进制“ image / jpeg”用于图像上传?

时间:2019-04-10 13:45:22

标签: image http multipart uploading

当我寻找更多将图像上载到服务器的方法时,我发现其中描述了Multipart方法的教程。我很好奇为什么分段比简单的原始二进制上传更好?

1 个答案:

答案 0 :(得分:0)

一段时间后,我遇到了与将数据作为标头(参数除外)发送相关的重大问题。默认情况下,OkHttp 不允许在标头中使用非 ASCII 字符。它导致崩溃,可以通过以不安全的方式添加标题来修复:

private fun createHeaders(dataHeader: FileUploadDataHeader): Headers =
    Headers.Builder()
            .add(UPLOAD_HEADER_COMMAND, UPLOAD_HEADER_COMMAND_VALUE)
            .add(HEADER_TOKEN_NAME, userSettings.sessionUser.uuid)
            .addUnsafeNonAscii(UPLOAD_HEADER_DATA, dataHeader.toString())
            .build()

最好使用 Multipart 请求,或者至少编码非 ASCII 值,然后在服务器上对其进行解码。但这需要与服务器端开发人员协作,而这并不总是可行的。