Alexander Weickmann
12/07/2020, 9:15 AMsuspend fun PipelineContext<Unit, ApplicationCall>.receiveCarefully(): String? =
@Suppress("BlockingMethodInNonBlockingContext")
withContext(<http://Dispatchers.IO|Dispatchers.IO>) {
val bodyBuilder = StringBuilder()
val stream = call.receiveStream()
stream.reader().use { reader ->
do {
val chars = CharArray(8192)
val numRead = reader.read(chars)
if (numRead > 0) {
bodyBuilder.append(String(chars, 0, numRead))
if (bodyBuilder.length > AppConfig.maxUploadChars) {
return@withContext null
}
}
} while (numRead > -1)
bodyBuilder.toString()
}
}
Jorge R
12/07/2020, 10:05 AMAlexander Weickmann
12/07/2020, 10:28 AMAlexander Weickmann
12/07/2020, 10:29 AMAlexander Weickmann
12/07/2020, 10:31 AMJorge R
12/07/2020, 11:09 AMAlexander Weickmann
12/07/2020, 11:52 AMAlexander Weickmann
12/07/2020, 11:53 AM