in ktor-http/ktor-http-cio/common/src/io/ktor/http/cio/HttpBody.kt [17:54]
public fun expectHttpUpgrade(
method: HttpMethod,
upgrade: CharSequence?,
connectionOptions: ConnectionOptions?
): Boolean = method == HttpMethod.Get &&
upgrade != null &&
connectionOptions?.upgrade == true
/**
* @return `true` if an http upgrade is expected according to [request]
*/
@KtorExperimentalAPI
public fun expectHttpUpgrade(request: Request): Boolean = expectHttpUpgrade(
request.method,
request.headers["Upgrade"],
ConnectionOptions.parse(request.headers["Connection"])
)
/**
* @return `true` if request or response with the specified parameters could have a body
*/
@KtorExperimentalAPI
public fun expectHttpBody(
method: HttpMethod,
contentLength: Long,
transferEncoding: CharSequence?,
connectionOptions: ConnectionOptions?,
contentType: CharSequence?
): Boolean {
if (transferEncoding != null) return true
if (contentLength != -1L) return contentLength > 0L
if (contentType != null) return true
if (method == HttpMethod.Get || method == HttpMethod.Head || method == HttpMethod.Options) return false
if (connectionOptions?.close == true) return true
return false
}