Andre Servidoni
07/27/2021, 2:55 PMval bytes = this
val byteBufferSize = 1024 * 100
val byteBuffer = ByteArray(byteBufferSize)
do {
val currentRead = bytes.readAvailable(byteBuffer, 0, byteBufferSize)
if (currentRead > 0) {
println("received: $currentRead")
}
} while (currentRead > 0)
Aleksei Tirman [JB]
07/28/2021, 10:04 AMval client = HttpClient(CIO)
client.get<HttpStatement>("<https://mirror.linux-ia64.org/ubuntu-releases/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.iso>").execute { response ->
val channel: ByteReadChannel = response.receive()
val byteBufferSize = 1024 * 100
val byteBuffer = ByteArray(byteBufferSize)
do {
val currentRead = channel.readAvailable(byteBuffer, 0, byteBufferSize)
if (currentRead > 0) {
println("received: $currentRead")
}
} while (currentRead > 0)
}
Could you please share a complete code snippet?Andre Servidoni
07/28/2021, 10:05 AMAleksei Tirman [JB]
07/28/2021, 10:08 AMAndre Servidoni
07/28/2021, 10:09 AMprivate val httpClient = HttpClient(engineConfig) {
expectSuccess = false
install(JsonFeature) {
val json = kotlinx.serialization.json.Json {
ignoreUnknownKeys = true
encodeDefaults = true
}
serializer = KotlinxSerializer(json)
}
install(Logging) {
logger = Logger.DEFAULT
level = LogLevel.ALL
}
defaultRequest {
url {
protocol = URLProtocol.HTTPS
host = cloudHost
}
}
}
Aleksei Tirman [JB]
07/28/2021, 10:10 AMAndre Servidoni
07/28/2021, 10:11 AMAleksei Tirman [JB]
07/28/2021, 10:45 AMAndre Servidoni
07/28/2021, 11:51 AMsuspend fun getFile(fileId: String, objectPath: String): HttpStatement =
httpClient.get("$START_PATH/$userId/$fileId/$objectPath") {
onDownload { received, contentLength ->
println("Received $received bytes from $contentLength")
}
}
Aleksei Tirman [JB]
07/28/2021, 12:24 PMAndre Servidoni
07/28/2021, 12:26 PMdo {
val currentRead = channel.readAvailable(byteBuffer, 0, byteBufferSize)
if (currentRead > 0) {
println("received: $currentRead")
}
} while (currentRead > 0)
I’m not using the offset, maybe I need to use it?Aleksei Tirman [JB]
07/28/2021, 12:34 PMAndre Servidoni
07/28/2021, 12:41 PMAleksei Tirman [JB]
07/28/2021, 12:43 PMval client = HttpClient(CIO)
val output = File("output.txt")
client.get<HttpStatement>("<https://ars.els-cdn.com/content/image/1-s2.0-S0960982203005347-mmc6.txt>").execute { response ->
val channel: ByteReadChannel = response.receive()
val byteBufferSize = 1024 * 5
val byteBuffer = ByteArray(byteBufferSize)
do {
val currentRead = channel.readAvailable(byteBuffer, 0, byteBufferSize)
output.appendBytes(byteBuffer)
if (currentRead > 0) {
println("received: $currentRead")
}
} while (currentRead > 0)
}