我正在使用Ktor 1.2.2,并且我有一个 InputStream 对象,我想将其用作我提出的 HttpClient 请求的主体。在 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]
如果我错过了任何相关信息,请告诉我,
谢谢!