2017-12-28 3 views
0

을 종료기능은 이전</p> <pre><code>var res = rs.requestLogin("user", "password") </code></pre> <p>내 기능 ...이 코드입니다, 내가 Fuel.post가 종료하기 전에 값을 반환 Fuel.post있는 기능이 Fuel.post

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이 종식 고해상도의 값을 반환 할 수있는 방법
?

답변

1

분명히 그 전화의 비동기 버전을 사용하고 있습니다. 이 람다를 responseString()에 전달하면 미래의 어떤 시점에서 비동기 적으로 다시 돌아 오는 경우 응답을 처리하도록 코드를 지정하게됩니다.

나는 blocking version을 사용하면 의심되는 결과를 얻을 수 있습니다.

완전히 해보지 않은 코드 :

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