eirikb
09/01/2022, 12:34 PMTransfer-Encoding: chunkedeirikb
09/01/2022, 12:43 PMsuspend fun main() {
    val client = HttpClient(OkHttp) {
install(ContentNegotiation) {
            jackson { }
        }
    }
    client.put("<http://localhost:1337/data>") {
        contentType(ContentType.Application.Json)
        setBody("")
    }
}jacksoneirikb
09/01/2022, 12:48 PMeirikb
09/02/2022, 7:40 AMAleksei Tirman [JB]
09/02/2022, 7:47 AMContentConverterOutgoingContentclass MyJacksonConverter(private val objectmapper: ObjectMapper = jacksonObjectMapper()): ContentConverter {
    private val originalConverter = JacksonConverter(objectmapper)
    override suspend fun deserialize(charset: Charset, typeInfo: TypeInfo, content: ByteReadChannel): Any? {
        return originalConverter.deserialize(charset, typeInfo, content)
    }
    override suspend fun serializeNullable(
        contentType: ContentType,
        charset: Charset,
        typeInfo: TypeInfo,
        value: Any?
    ): OutgoingContent {
        val writer = StringWriter()
        objectmapper.writeValue(writer, value)
        return TextContent(writer.toString(), contentType)
    }
}suspend fun main() {
    val client = HttpClient(OkHttp) {
        install(ContentNegotiation) {
            register(ContentType.Application.Json, MyJacksonConverter())
        }
    }
    val r = <http://client.post|client.post>("<https://httpbin.org/post>") {
        contentType(ContentType.Application.Json)
        setBody(Example(123))
    }
    println(r.bodyAsText())
}
data class Example(val x: Int)eirikb
09/02/2022, 7:49 AM""Aleksei Tirman [JB]
09/02/2022, 10:28 AMContentNegotiationAleksei Tirman [JB]
09/02/2022, 10:30 AMeirikb
09/02/2022, 10:32 AMgsoneirikb
09/02/2022, 10:38 AMconfigure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)gsonAleksei Tirman [JB]
09/02/2022, 10:48 AMMyJacksonConverterval mapper = ObjectMapper()
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
val client = HttpClient(OkHttp) {
    install(ContentNegotiation) {
        register(ContentType.Application.Json, MyJacksonConverter(mapper))
    }
}eirikb
09/02/2022, 10:50 AM