在结束前的kotlin返回值中的函数Fuel.post

时间:2017-12-28 00:37:59

标签: android kotlin httpresponse

我有一个Fuel.post函数,它在Fuel.post结束之前返回一个值,这是代码......

var res = rs.requestLogin("user", "password")

和我的功能

fun requestLogin(user : String, pass : String) : String {
  var res = ""
    val _params = HashMap<String, String>()

    _params.put("user", user)
    _params.put("pass", pass)

    Fuel.post(Constantes.ENDPOINT_LOGIN, _params.toList())
            .responseString(Charset.forName("UTF8")){ request, response, result ->
                when (result) {
                    is Result.Success -> {
                        res = "0"
                    }

                    is Result.Failure ->{
                        res = "-1"
                    }
                }
            }
    return res
}

我使用这个lib:https://github.com/kittinunf/Fuel
我如何在Fuel.post结束时返回res值?

1 个答案:

答案 0 :(得分:1)

显然您正在使用该调用的异步版本。通过将该lambda传递给responseString(),您告诉它您希望该代码在将来的某个时刻以异步方式返回时处理响应。

我怀疑如果你使用blocking version,你可能得到你想要的结果。

完全未经验证的代码:

val (request, response, result) = Fuel.post(Constantes.ENDPOINT_LOGIN, _params.toList())
    .responseString()
return if(result == Result.Success) "0" else "-1"