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

问题描述 投票:0回答:1

我有一个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值?

android kotlin httpresponse
1个回答
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"
© www.soinside.com 2019 - 2024. All rights reserved.