Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用内容协商将json转换为ktor中的kotlin对象?_Json_Xmlhttprequest_Kotlin_Ktor - Fatal编程技术网

如何使用内容协商将json转换为ktor中的kotlin对象?

如何使用内容协商将json转换为ktor中的kotlin对象?,json,xmlhttprequest,kotlin,ktor,Json,Xmlhttprequest,Kotlin,Ktor,我是Ktor的新手,我正在尝试构建一个处理登录凭据的后端。我正试图使用内容协商功能将JSON转换为本机Kotlin对象,但我一直收到一个不受支持的媒体类型异常。这是我的密码: fun Application.main() { install(CallLogging) install(DefaultHeaders) install(ContentNegotiation) { register(ContentType.Application.Json, Gso

我是Ktor的新手,我正在尝试构建一个处理登录凭据的后端。我正试图使用内容协商功能将JSON转换为本机Kotlin对象,但我一直收到一个不受支持的媒体类型异常。这是我的密码:

fun Application.main() {
    install(CallLogging)
    install(DefaultHeaders)
    install(ContentNegotiation) {
        register(ContentType.Application.Json, GsonConverter())
    }
    routing {
        get("/") {
            call.respondHtml {
                head {
                    title("Kotlin Webapp")
                    script {
                        type = ScriptType.textJScript
                        src = "main.bundle.js"
                    }
                }
                body {
                    div {
                        id = "root"
                    }
                }
            }
        }
        post("/login") {
            val credentials = call.receive<Credentials>()
            println(credentials)
        }
    }
}

data class Credentials(val username: String, val password: String)

我在网上搜索了答案,但找不到我做错了什么。有人能帮忙吗?

为了完整起见,因为我的评论似乎有帮助:

在这种情况下,您需要确保将请求设置为正确的值,否则服务器无法完全确定如何处理接收到的内容

在请求中(例如或),客户机告诉服务器实际发送的数据类型


为了完整起见,由于我的评论似乎有所帮助:

在这种情况下,您需要确保将请求设置为正确的值,否则服务器无法完全确定如何处理接收到的内容

在请求中(例如或),客户机告诉服务器实际发送的数据类型


请求的内容类型是否正确?这似乎是我的问题。谢谢请求的内容类型是否正确?这似乎是我的问题。谢谢
{"username":"Jamdan2","password":"sometext"}
xhr.setRequestHeader("Content-Type", "application/json");