4

私は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]

関連情報を見逃した場合はお知らせください。

ありがとう!

4

3 に答える 3