如何使用RetroFit2返回OnResponse

时间:2017-08-12 19:36:11

标签: java android retrofit retrofit2

我是retrofit2的新手,我不知道如何在方法OnResponse上返回任何内容。 我有这些代码:

  public boolean verificarUsuario (String login, String senha){

    Retrofit retrofit = new Retrofit.Builder().baseUrl(BASE_URL).addConverterFactory(GsonConverterFactory.create(g)).build();
    usuarioService service = retrofit.create(usuarioService.class);
    retrofit2.Call<Boolean> user = service.verificarUsuario(login,senha);
    user.enqueue(new Callback<Boolean>() {

        @Override
        public void onResponse(Call<Boolean> call, Response<Boolean> response) {
            boolean result = response.body();



        }

        @Override
        public void onFailure(Call<Boolean> call, Throwable t) {

        }
    });
}

我需要在调用方法atualizarUsuario时返回变量结果。

这里我有我的方法verificarUsuario的界面:

@GET("get/usuarios/login/{login,senha}")
 Call<Boolean> verificarUsuario(@Path("login") String login, @Path("senha") String senha);

在这里我有我的方法的Json verificarUsuario:

   @GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/verificarUsuario/")
public String verificarUsuario(@QueryParam("login")String login, @QueryParam("senha") String senha) {

    usuarioDAO dao = new usuarioDAO();

    if(dao.verificarUsuario(login,senha)){
        return "true";
    }else{
        return "false";
    }
}

有人知道怎么做吗?

1 个答案:

答案 0 :(得分:0)

Retrofit提供两种类型的调用,异步调用和同步调用。异步调用由enqueue触发,这是您调用的方法,并允许您传入Callback对象,告诉它在调用完成时应该发生什么。如果您希望调用方法等待响应返回然后根据它返回一些内容,那么您将要使用同步方法,即execute。但是,您无法在android中的UI线程上调用execute,因此如果在主线程上发生这种情况,您需要使verificarUsuario返回void,然后触发你传递给enqueue

的回调中你想要的结果