Tobias Gronbach
02/19/2022, 12:14 PMoverride suspend fun authenticateUser(userNameHash: String, passwordHash: String): UserAuthData? {
return try {
<http://client.post|client.post>(HttpRoutes.AUTHENTICATE_USER_FQDN) {
contentType(ContentType.Application.Json)
setBody {
UserRegistrationData(
userNameHash = userNameHash,
passwordHash = passwordHash
)
}
}.body<UserAuthData>()
} catch (e: Exception) {
...
}
}
Data Class looks like this:
@kotlinx.serialization.Serializable
data class UserRegistrationData(
val userNameHash: String,
val passwordHash: String
)
HttpClient
HttpClient(Android) {
....
install(ContentNegotiation) {
json(Json {
ignoreUnknownKeys = true
isLenient = true
}
)
}
....
}
Dependencies (for serialization)
implementation("io.ktor:ktor-client-content-negotiation:$ktor_version")
implementation("io.ktor:ktor-serialization-kotlinx-json:$ktor_version")
Error Message:
Line: 58, Method: authenticateUser: Serializer for class 'null' is not found.
Mark the class as @Serializable or provide the serializer explicitly.Sam
02/19/2022, 12:22 PMsetBody
supposed to be taking a lambda argument?Sam
02/19/2022, 12:22 PMsetBody(UserRegistrationData(
userNameHash = userNameHash,
passwordHash = passwordHash
))
Sam
02/19/2022, 12:25 PMTobias Gronbach
02/19/2022, 12:48 PM