gpt4 book ai didi

java - 如何使用 OkHttp - Android 将 html 源代码获取到字符串

转载 作者:行者123 更新时间:2023-11-30 00:48:58 26 4
gpt4 key购买 nike

一段时间以来,我一直在寻找将 Html 代码转换为 String 的最简单方法。我只需要获取它,以便继续我的项目。

我试过:

OkHttpClient client = new OkHttpClient();

String run(String url) throws IOException {
Request request = new Request.Builder()
.url(url)
.build();

Response response = client.newCall(request).execute();
return response.body().string();
}

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text = (TextView) findViewById(R.id.text);

String html= null;
try {
html = run("http://google.com");
} catch (IOException e) {
e.printStackTrace();
}

text.setText(html);
}

我收到错误 android.os.NetworkOnMainThreadException。

我刚开始在 Android Studio 中开发,我也不是 Java 专家。我希望有人能解释我需要做什么,最好举例说明。提前谢谢你

最佳答案

正如@CommonsWare 和@christian 已经说过的,你需要在后台进行网络操作,为此 Okhttp 有一个特殊的方法 enqueue()。这将为您创建一个后台线程并简化您的工作。

在您的情况下,将 run() 方法中的行更改为:

String run(String url) throws IOException {

String result = "";

Request request = new Request.Builder()
.url(url)
.build();

Response response = client.newCall(request).enqueue(new Callback() {

@Override
public void onFailure(Call call, IOException e) {
// failure case
}

@Override
public void onResponse(Call call, Response response) throws IOException {
// success case
result = response.body().string();
}
});
}

关于java - 如何使用 OkHttp - Android 将 html 源代码获取到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41350807/

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