diff --git a/http/src/main/kotlin/org/openrs2/http/HttpResponseExtensions.kt b/http/src/main/kotlin/org/openrs2/http/HttpResponseExtensions.kt index bf34c259..690b2874 100644 --- a/http/src/main/kotlin/org/openrs2/http/HttpResponseExtensions.kt +++ b/http/src/main/kotlin/org/openrs2/http/HttpResponseExtensions.kt @@ -1,7 +1,10 @@ package org.openrs2.http +import com.google.common.net.HttpHeaders +import com.google.common.net.MediaType import java.io.IOException import java.net.http.HttpResponse +import java.nio.charset.Charset private val DEFAULT_EXPECTED_STATUS_CODES = setOf(200) @@ -11,3 +14,12 @@ public fun HttpResponse.checkStatusCode(expectedStatusCodes: Set = D throw IOException("Unexpected status code: $status") } } + +public val HttpResponse.contentType: MediaType? + get() = headers().firstValue(HttpHeaders.CONTENT_TYPE).map(MediaType::parse).orElse(null) + +public val HttpResponse.charset: Charset? + get() { + val contentType = contentType ?: return null + return contentType.charset().orNull() + }