Vladimir Malykhin
08/15/2023, 7:08 AMContentNegotiation
) and set Content-Type
header.
My config in threadVladimir Malykhin
08/15/2023, 7:08 AMsourceSets {
val commonMain by getting {
dependencies {
implementation("com.squareup.sqldelight:runtime:1.5.5")
implementation("com.squareup.sqldelight:coroutines-extensions:1.5.5")
implementation("io.ktor:ktor-client-core:2.3.2")
implementation("io.ktor:ktor-client-logging:2.3.2")
implementation("io.ktor:ktor-client-content-negotiation:2.3.2")
implementation("io.ktor:ktor-serialization-kotlinx-json:2.3.2")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1")
implementation("commons-codec:commons-codec:1.15")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.5.1")
implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.4.0")
Vladimir Malykhin
08/15/2023, 7:08 AMval httpClient = HttpClient() {
install(ContentNegotiation) {
json(
Json {
useAlternativeNames = false
ignoreUnknownKeys = true
isLenient = true
}
)
}
install(Logging) {
logger = Logger.DEFAULT
level = LogLevel.ALL
}
defaultRequest {
header("Content-Type", "application/json")
Vladimir Malykhin
08/15/2023, 7:09 AMreturn try {
<http://httpClient.post|httpClient.post>(
db.serverQueries.selectAll().executeAsOneOrNull()?.currentServer + ApiConst.API_PAYOUT
)
{
contentType(ContentType.Application.Json)
body = Json.encodeToJsonElement(payoutData)
}.body()
Vladimir Malykhin
08/15/2023, 7:23 AM@Serializable
data class PayoutData(
var payoutType: String,
var account: String?,
var walletType: String,
var code: Int? = null
)
Aleksei Tirman [JB]
08/16/2023, 6:07 AMbody
property does exist only in Ktor 1.. In Ktor 2. the setBody
method is to send a request body. Can you share the migrated code?Vladimir Malykhin
08/16/2023, 7:12 AM