Bun*_*les 5 android http kotlin android-studio ktor
我正在尝试将图像上传到 http 服务器,该服务器据称以“标准方式”接受文件,无论这意味着什么。我将互联网上的一堆示例合并到这个解决方案中,每个示例都实现了我想要的一小部分。
'srcBitmap' is a byteArray containing the JPG data.
val response: HttpResponse = httpClient.submitFormWithBinaryData(
url = URLUploadFile,
formData = formData {
append("bitmapName", "image.jpg")
append("image", srcBitmap, Headers.build {
append(HttpHeaders.ContentType, "image/jpg")
append(HttpHeaders.ContentDisposition, "filename=image.jpg")
})
},
block = {
headers {
append(HttpHeaders.ContentType, contentTypeString)
append(HttpHeaders.CacheControl, "no-cache")
append("my-app-authtoken", PREFKEY_AUTHTOKEN)
append("my-app-id", PREFKEY_USERID)
}
contentType(ContentType.Application.Json)
body = jsonBody.toString()
})
Run Code Online (Sandbox Code Playgroud)
主要的“body”部分是一些在“block”参数中传递的 json。该数据已按预期安全到达。
但是图像本身的二进制数据要么没有显示在服务器端,要么被服务器忽略,因为我没有适当设置一些“键”值。
这是使用 Ktor 上传文件的正确方法吗?如果不是,我做错了什么?
image第二个追加调用是发送具有 name和 filename 的部分的正确方法image.jpg。问题是您无法在一个请求中同时发送application/json和multipart/form-data内容。
| 归档时间: |
|
| 查看次数: |
2535 次 |
| 最近记录: |