【发布时间】:2015-06-30 18:32:02
【问题描述】:
这是我的代码:
OkHttpClient okHttpClient = new OkHttpClient();
Request request = new Request.Builder().url("http://publicobject.com/helloworld.txt").build();
Callback callback = new Callback() {
@Override
public void onFailure(Request request, IOException e) {
}
@Override
public void onResponse(Response response) throws IOException {
}
};
okHttpClient.newCall(request).enqueue(callback);
String responseString;
在上面的代码中,我想将来自 onResponse() 方法的 response.body().string() 的值存储在变量 responseString 中,但是我无法访问它。
【问题讨论】:
-
我有点困惑你在这里想要做什么。如果此代码存在于本地函数中,那么使用异步回调并存储在调用函数中声明的变量有什么好处?除非您先阻止,否则无论如何您都无法使用它。您可以将响应存储在类实例变量中,这样可以正常工作。尽管您以错误的方式进行此操作,但很有可能。
-
@MattWolfe 你可能是对的,我是 Android 开发的新手。我想做的是获取一些像link 这样的数据,将其保存在变量中,解析它,然后使用视图将其显示在屏幕上。将数据存储在实例变量中是正确的方法还是有另一种方法?谢谢。
-
我只想让你的活动/片段实现回调:然后执行:okHttpClient.newCall(request).enqueue(this);然后在你的 onResponse 中解析它,你可以将结果显示到屏幕上。