获取网站源代码时出错



我正在尝试创建一个简单的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");

相关内容

  • 没有找到相关文章

最新更新