JSON в Ktor: сериализатор и Content-Type проверяем отдельно
Клиент Ktor получил DTO, но тело запроса не превращается в ожидаемый JSON. Сначала разделите две настройки: какой сериализатор установлен и какой формат указан у конкретного тела.
В конфигурации клиента регистрируем JSON:
install(ContentNegotiation) {
json()
}
Это фрагмент блока настройки HttpClient, не самостоятельная программа. Для kotlinx.serialization нужны соответствующая зависимость и сериализуемый DTO; в примере документации класс отмечен @Serializable.
В запросе объект передаётся через setBody, а тип содержимого задаётся через contentType(ContentType.Application.Json). При чтении ответа через body проверьте и его Content-Type: плагин десериализует поддерживаемый формат в ожидаемый тип.
Если преобразование не сработало, проверьте регистрацию сериализатора, DTO и заголовок именно нужного направления — запроса или ответа. Установленный плагин сам по себе не доказывает, что сервер вернул JSON.
#Kotlin #Ktor #Backend #Serialization