获取网站源代码时出错

时间:2012-12-11 00:44:00

标签: android url httpwebrequest

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

我做错了什么?

1 个答案:

答案 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");