diff --git a/src/main/kotlin/io/gitlab/jfronny/sdom/SDom.kt b/src/main/kotlin/io/gitlab/jfronny/sdom/SDom.kt index 380ddda..7eefa14 100644 --- a/src/main/kotlin/io/gitlab/jfronny/sdom/SDom.kt +++ b/src/main/kotlin/io/gitlab/jfronny/sdom/SDom.kt @@ -43,6 +43,17 @@ object SDom { ignoreUnknownKeys = true }) } + } + + private val authenticatedClient = HttpClient(Java) { + engine { + protocolVersion = java.net.http.HttpClient.Version.HTTP_2 + } + install(ContentNegotiation) { + json(Json { + ignoreUnknownKeys = true + }) + } install(Auth) { basic { credentials { @@ -115,7 +126,7 @@ object SDom { var judgementTypes: Map? = null suspend fun getContests() { - val result = client.get(SDCredentials.url) { + val result = authenticatedClient.get(SDCredentials.url) { url { appendPathSegments("contests") } @@ -149,7 +160,7 @@ object SDom { suspend fun getProblems() { if (currentContest == null) return - val result = client.get(SDCredentials.url) { + val result = authenticatedClient.get(SDCredentials.url) { url { appendPathSegments("contests", currentContest!!.id, "problems") } @@ -161,7 +172,7 @@ object SDom { currentProblem = null } } - judgementTypes = client.get(SDCredentials.url) { + judgementTypes = authenticatedClient.get(SDCredentials.url) { url { appendPathSegments("contests", currentContest!!.id, "judgement-types") } @@ -176,7 +187,7 @@ object SDom { val resultFlow: MutableSharedFlow> = MutableSharedFlow() launch { try { - val response: SDSubmission = client.post(SDCredentials.url) { + val response: SDSubmission = authenticatedClient.post(SDCredentials.url) { url { appendPathSegments("contests", contest.id, "submissions") } @@ -199,7 +210,7 @@ object SDom { return@launch } do { - val result: List = client.get(SDCredentials.url) { + val result: List = authenticatedClient.get(SDCredentials.url) { url { appendPathSegments("contests", contest.id, "judgements") parameters.append("submission_id", response.id)