Я использую Ktor 1.2.2 , и у меня есть объект InputStream, который я хочу использовать в качестве тела для запроса HttpClient, который я записываю вниз.Вплоть до Ktor 0.95 существовал этот InputStreamContent объект, который, казалось, делал именно это, но был удален из Ktor в версии 1.0.0 (к сожалению, не мог понять, почему).
Я могу заставить его работать, используя ByteArrayContent (см. Код ниже), но я бы предпочел найти решение, которое не требует загрузки всего InputStream в память ...
ByteArrayContent(input.readAllBytes())
ЭтоКод - это простой тестовый пример, который имитирует то, чего я пытаюсь достичь:
val file = File("c:\\tmp\\foo.pdf")
val inputStream = file.inputStream()
val client = HttpClient(CIO)
client.call(url) {
method = HttpMethod.Post
body = inputStream // TODO: Make this work :(
}
// [... other code that uses the response below]
Дайте мне знать, если я пропустил какую-либо соответствующую информацию,
Спасибо!