我是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";
}
}
有人知道怎么做吗?
答案 0 :(得分:0)
Retrofit提供两种类型的调用,异步调用和同步调用。异步调用由enqueue
触发,这是您调用的方法,并允许您传入Callback
对象,告诉它在调用完成时应该发生什么。如果您希望调用方法等待响应返回然后根据它返回一些内容,那么您将要使用同步方法,即execute
。但是,您无法在android中的UI线程上调用execute
,因此如果在主线程上发生这种情况,您需要使verificarUsuario
返回void,然后触发你传递给enqueue