私はKtor 1.2.2を使用しており、後から作成する HttpClient リクエストの本文として使用したい InputStream オブジェクトがあります。Ktor 0.95 までは、このInputStreamContentオブジェクトがありましたが、バージョン 1.0.0 で Ktor から削除されました (残念ながら理由がわかりませんでした)。
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]
関連情報を見逃した場合はお知らせください。
ありがとう!