Разместить запрос с изображением с помощью клиента Ktor - PullRequest
1 голос
/ 25 марта 2019

У меня проблемы с отправкой 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?

...