【发布时间】:2019-09-01 00:11:51
【问题描述】:
当我更频繁地寻找将图像上传到服务器的方法时,我会找到描述 Multipart 方法的教程。我很好奇为什么 multipart 比简单的原始二进制上传更好?
【问题讨论】:
标签: image http multipart uploading
当我更频繁地寻找将图像上传到服务器的方法时,我会找到描述 Multipart 方法的教程。我很好奇为什么 multipart 比简单的原始二进制上传更好?
【问题讨论】:
标签: image http multipart uploading
一段时间后,我遇到了与将数据作为标头发送数据相关的重大问题,但参数除外。默认情况下,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值,然后在服务器上对其进行解码。但这需要与服务器端开发人员合作,而这并不总是可行的。
【讨论】: