如何从 Android-Kotlin 中的 Unit 获取字符串

How get String from Unit in Android-Kotlin

我正在对 Web 服务使用 Okhttp3 GET 方法

val client= OkHttpClient()
    fun login_Chk(id:String,pw:String)
     {
       val req=Request.Builder()
               .url("https://www.hxxxxxx.com/WebService.asmx/Login_Check?ID=${id}&PW=${pw}")
               .build()
       client.newCall(req).enqueue(object : Callback{
        override fun onFailure(call: Call, e: IOException) {}
        override fun onResponse(call: Call, res: Response) {
         println(res.body()?.string().toString())
            return
        }
       })
     }

我想检查网络服务 return 它的 "Success" 或 "Fail"

缺点是我的 Logcat https://images2.imgbox.com/b4/cb/bKfiHsgc_o.png

在c#中我们可以使用like

if(webservice(ID,PW) =="Success")
{
......
}

但在 kotlin 中我不知道该怎么做。 谢谢

您不能通过这样的异步方法 return。加上 Unit 方法 return 无论如何

您需要将回调对象从方法传递给客户端

fun login_Chk(id:String,pw:String, cb:Callback) 
  {

然后在正文中这样做

client.newCall(req).enqueue(cb);

无论你在哪里调用login_Chk,你都定义了回调,里面有onResponse,这是调用方法"returned"的数据

您还需要一个 XML 解析器。你不能用那个回应 == "Success"