我正在为Android开发SDK,但遇到一些问题...
我从请求的主体中获取json并尝试将其解析为User模型,但它不起作用,所有属性均保持为null,但是当我在没有这些async和uiThread的情况下执行解析器即可。但是当我正在执行请求时,我无法在主线程上完成它...
我的Android API是23,我的朋友在API 27上测试了相同的代码,并且可以正常工作,我不知道我们的设备之间是否还有更多区别。
预先感谢
@JvmStatic
fun loginWithFacebook(token: String, listener: RequestListener<User>) {
doAsync {
val gson = GsonBuilder().create()
uiThread { listener.onStart() }
val response = post(body = "$INSTANCE_URL/auth", "{\n" +
"\"provider\": \"facebook\",\n" +
"\"access_token\": \"" + token + "\"" +
"}\n")
uiThread {
response?.let { res ->
try {
System.out.println("BCFLW-SDK \n Response : $res")
val user = gson.fromJson(res, User::class.java)
System.out.println("BCFLW-SDK Parsed User : $user")
listener.onCompleted(result = user)
} catch (e: Exception) {
System.out.println("BCFLW-SDK Error Exception : ${e.message}")
listener.onError(RequestError.PARSE)
}
return@uiThread
}
listener.onError(RequestError.DEFAULT)
}
}
}