From e4f35ec39c8c2a7ef092ef860b76efc69e4fb5db Mon Sep 17 00:00:00 2001 From: yumoqing Date: Mon, 18 May 2026 09:28:10 +0800 Subject: [PATCH] fix: use FormDataContent for form POST requests (Ktor CIO engine requirement) --- shared/src/commonMain/kotlin/com/bricks/mp/core/BricksHttp.kt | 4 ++-- shared/src/commonMain/kotlin/com/bricks/mp/sage/SageClient.kt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/shared/src/commonMain/kotlin/com/bricks/mp/core/BricksHttp.kt b/shared/src/commonMain/kotlin/com/bricks/mp/core/BricksHttp.kt index ad0ef53..fe9da5e 100644 --- a/shared/src/commonMain/kotlin/com/bricks/mp/core/BricksHttp.kt +++ b/shared/src/commonMain/kotlin/com/bricks/mp/core/BricksHttp.kt @@ -5,6 +5,7 @@ import io.ktor.client.engine.cio.* import io.ktor.client.plugins.cookies.* import io.ktor.client.request.* import io.ktor.client.statement.* +import io.ktor.http.content.FormDataContent import io.ktor.http.* import kotlinx.serialization.json.* @@ -83,8 +84,7 @@ class BricksHttp(private val context: BricksContext? = null) { authToken: String = "" ): String { val response = client.post(url) { - contentType(ContentType.Application.FormUrlEncoded) - setBody(form) + setBody(FormDataContent(form)) if (authToken.isNotEmpty()) { header(HttpHeaders.Authorization, "Bearer $authToken") } diff --git a/shared/src/commonMain/kotlin/com/bricks/mp/sage/SageClient.kt b/shared/src/commonMain/kotlin/com/bricks/mp/sage/SageClient.kt index 7e45661..d72b6e0 100644 --- a/shared/src/commonMain/kotlin/com/bricks/mp/sage/SageClient.kt +++ b/shared/src/commonMain/kotlin/com/bricks/mp/sage/SageClient.kt @@ -7,6 +7,7 @@ import io.ktor.client.engine.cio.* import io.ktor.client.plugins.cookies.* import io.ktor.client.request.* import io.ktor.client.statement.* +import io.ktor.http.content.FormDataContent import io.ktor.http.* import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.sync.Mutex @@ -62,8 +63,7 @@ class SageClient { } val response = client.post(url) { - contentType(ContentType.Application.FormUrlEncoded) - setBody(formParameters) + setBody(FormDataContent(formParameters)) } val body = response.bodyAsText()