fix: use FormDataContent for form POST requests (Ktor CIO engine requirement)

This commit is contained in:
yumoqing 2026-05-18 09:28:10 +08:00
parent 605b5200ef
commit e4f35ec39c
2 changed files with 4 additions and 4 deletions

View File

@ -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")
}

View File

@ -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()