Я использую 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]
Сообщите мне, если я пропустил важную информацию,
Спасибо!