gpt4 book ai didi

android - 如何将使用 OkHttp 的 GET 请求的结果保存在局部变量中?

转载 作者:行者123 更新时间:2023-11-30 05:07:56 26 4
gpt4 key购买 nike

我正在尝试使用 Java 中的 OkHttp 发出获取请求。我使用异步线程成功地完成了它,但我“卡在”了 onResponse 函数内部。我的意思是,除了这个函数,我不能在其他任何地方使用请求的结果。我该怎么做才能使此代码正常工作?

            OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
.url("https://raw.github.com/square/okhttp/master/README.md")
.build();

client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
e.printStackTrace();
}

@Override
public void onResponse(Call call, final Response response) throws IOException {
final String responseData = response.body().string();
LoginInscription.this.runOnUiThread(new Runnable() {
@Override
public void run() {
TextView tv = findViewById(R.id.txtString);
tv.setText(responseData);
}
});
}
});

TextView tv = findViewById(R.id.txtString);
String res = tv.getText().toString();

System.out.println(res);

谢谢...

最佳答案

我相信你System.out.println(res); 可能无法正常工作,因为 final String res 的范围在此之前结束。

您可以声明一个可以更新的 Activity/类级变量/方法onResponse()。例如:

@Override
public void onResponse(Call call, Response response) throws IOException {

final String myResponse = response.body().string();
MainActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
txtString.setText(myResponse);
}
});
}

获取更多示例: https://www.journaldev.com/13629/okhttp-android-example-tutorial

关于android - 如何将使用 OkHttp 的 GET 请求的结果保存在局部变量中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54208903/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com