gpt4 book ai didi

kotlin - 在 Ktor 中,如何将 InputStream 流式传输到 HttpClient 请求的正文中?

转载 作者:行者123 更新时间:2023-12-04 15:43:51 24 4
gpt4 key购买 nike

我正在使用 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]

如果我遗漏了任何相关信息,请告诉我,

谢谢!

最佳答案

这就是我在 Ktor 1.3.0 上将文件上传到 GCP 的方法:

client.put<Unit> {
url(url)
method = HttpMethod.Put
body = ByteArrayContent(file.readBytes(), ContentType.Application.OctetStream)
}

关于kotlin - 在 Ktor 中,如何将 InputStream 流式传输到 HttpClient 请求的正文中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56706485/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com