0

我正在尝试创建一个简单的 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 行更改为将获取源代码的其他方法,但它们都将我重定向到警报(没有消息的错误,只有标题)。

我究竟做错了什么?

4

1 回答 1

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");
于 2012-12-11T01:04:20.550 回答