У меня проблемы с отправкой http-запроса, в котором в качестве одного из параметров тела указан файл. Ответ, возвращаемый API, не соответствует ожиданиям, поэтому я считаю, что с кодом что-то не так.
suspend fun post(url: String, bodyParameters: MutableMap<String, Any>, headerParameters:
MutableMap<String, String>? = null): HttpResponse?{
val client = HttpClient()
try {
val call = client.call(url) {
method = HttpMethod.Post
body = MultiPartFormDataContent(
formData {
bodyParameters.forEach{(key, value) ->
when(value) {
is String -> {
append(key, value)
}
is File -> {
append(key, value.inputStream().asInput())
}
}
}
}
)
}
if(call.response.status.value == 500) {
return null
}
return call.response
Статус ответа, который возвращается, соответствует ожидаемому, когда файл не отправляется. Есть идеи, почему это не работает?
Есть ли другие способы сделать это с Ktor?