【发布时间】:2016-02-08 16:42:55
【问题描述】:
我正在为 Android 应用构建登录系统。我正在使用OkHttp 连接到我的服务器并获得 JSON 响应。
我已经定义了一个带有登录返回数据的类(现在只是根据用户是否存在于数据库中的真假响应),然后编写连接服务器的代码,如下所示:
class UserLogin {
boolean status;
public void setStatus(boolean status) {
this.status = status;
}
public boolean getStatus() {
return status;
}
}
public class ClientServerInterface {
OkHttpClient client = new OkHttpClient();
boolean login(Request request) {
final Gson gson = new Gson();
client.newCall(request).enqueue(new Callback() {
UserLogin login;
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
login = gson.fromJson(response.body().charStream(), UserLogin.class);
login.setStatus(login.status);
}
});
// need to return the boolean response (status) here
}
}
将Request 变量传递给login 方法的代码运行良好。我希望 login 返回一个布尔响应,以便我可以将其传递给其他类中的其他方法。
但是,因为UserLogin 对象是在callback 中定义的,所以我无法在父方法中访问它。我制作了一个getStatus 方法,但不确定如何正确使用它来获取主要login 方法中的状态。
【问题讨论】:
-
// need to return the boolean response (status) here=> 显然你不能这样做......因为当这个方法返回时,请求可能仍在运行
标签: java android json http callback