我正在尝试创建一个简单的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行多次更改为其他获取源代码的方法,但是他们都将我重定向到警报(错误没有消息,只有标题)。
我做错了什么?
答案 0 :(得分:0)
是否有一个特殊原因导致您不能仅使用它来加载网页?
webView.loadUrl("www.example.com");
如果你真的想要将源代码抓取到一个字符串中,这样你可以操作它并按照你想要的方式显示它,尝试打开一个内容流然后使用标准的java方法将数据读入一个字符串,您可以随意执行任何操作:
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");