我正在尝试创建一个简单的Android应用程序,该应用程序将有可能获取网站的源代码。无论如何,我已经写了以下内容:
WebView webView = (WebView) findViewById(R.id.webView);
try {
webView.setWebViewClient(new WebViewClient());
InputStream input = (InputStream) new URL(url.toString()).getContent();
webView.loadDataWithBaseURL("", "<html><body><p>"+input.toString()+"</p></body></html>", "text/html", Encoding.UTF_8.toString(),"");
setContentView(webView);
} catch (Exception e) {
Alert alert = new Alert(getApplicationContext(),
"Error fetching data", e.getMessage());
}
我曾多次尝试将第 3 行更改为其他将获取源代码的方法,但它们都将我重定向到警报(错误,没有消息,只有标题)。
我做错了什么?
有什么特殊的原因为什么你不能只使用它来加载网页?
webView.loadUrl("www.example.com");
如果您真的想将源代码抓取到字符串中,以便可以操作它并按照您尝试的方式显示它,请尝试打开内容的流,然后使用标准 java 方法将数据读入到 String,然后您可以执行任何您想要的操作:
InputStream is = new URL("www.example.com").openStream();
InputStreamReader is = new InputStreamReader(in);
StringBuilder sb = new StringBuilder();
BufferedReader br = new BufferedReader(is);
String read = br.readLine();
while(read != null) {
sb.append(read);
read = br.readLine();
}
String sourceCodeString = sb.toString();
webView.loadDataWithBaseURL("www.example.com/", "<html><body><p>"+sourceCodeString+"</p></body></html>", "text/html", Encoding.UTF_8.toString(),"about:blank");