java class 优先将网页读入 Android 下的字符串
Which java class is preferred to read a web page into a string under Android
我见过很多解决方案,但不确定哪种是首选方法或 class 可以使用,包括导入和库?我更喜欢使用原生 Android 库,我正在使用 API 23,但这可以更改。
这甚至不一定是 Android 问题。如果您的目标只是获得网页的 String
表示(不解析),您应该能够使用 Java SE 中也存在的 类,例如 URL
InputStream
没有任何问题。
比如(这里没有做异常处理,需要自己做)。您可以使用 try-with-resources 或在 finally 块中完成后关闭连接/输入流。
// create the url object and open the connection
URL url = new URL("http://somewhere.com");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// read the webpage a line at a time and append it to a `StringBuilder`
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null) {
sb.append(line);
}
// here is the html
String html = sb.toString();
我见过很多解决方案,但不确定哪种是首选方法或 class 可以使用,包括导入和库?我更喜欢使用原生 Android 库,我正在使用 API 23,但这可以更改。
这甚至不一定是 Android 问题。如果您的目标只是获得网页的 String
表示(不解析),您应该能够使用 Java SE 中也存在的 类,例如 URL
InputStream
没有任何问题。
比如(这里没有做异常处理,需要自己做)。您可以使用 try-with-resources 或在 finally 块中完成后关闭连接/输入流。
// create the url object and open the connection
URL url = new URL("http://somewhere.com");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// read the webpage a line at a time and append it to a `StringBuilder`
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null) {
sb.append(line);
}
// here is the html
String html = sb.toString();