在Android上获取webPage的内容字符串(不是源代码)

时间:2013-01-10 12:44:14

标签: javascript android json

我创建了一个Javascript页面来生成一个JSON对象,然后从Android设备读取它。 我用以下代码阅读它

StringBuilder stringBuilder = new StringBuilder();
        HttpClient client = new DefaultHttpClient();
        HttpGet httpGet = new HttpGet(url);

    try {
        HttpResponse response = client.execute(httpGet);
        StatusLine statusLine = response.getStatusLine();
        int statusCode = statusLine.getStatusCode();

        if (statusCode == 200){
            HttpEntity entity = response.getEntity();
            InputStream content = entity.getContent();
            BufferedReader reader = new BufferedReader(new InputStreamReader(content));
            String line;
            while ((line = reader.readLine()) != null){
                stringBuilder.append(line);
            }
        } else {
            Log.e("JSON", "Failed to donwload file");
        }
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

问题是此代码返回网页的源代码,源代码是Javascript中的脚本,而不是执行后生成的JSON字符串。 我需要JSON字符串,我需要使用Javascript来生成JSON字符串,因为我访问了外部服务。

我还没有找到任何解决方案。如果可能的解决方案涉及服务器或Android终端,我不在乎。

感谢。

2 个答案:

答案 0 :(得分:0)

String myresponse=Html.escapeHtml(YourStringHere);

答案 1 :(得分:0)

试试这个。

private class MyJavaScriptInterface {

     private MyJavaScriptInterface () {
      }

    public void setHtml(String contentHtml) {

                    //here you get the content html
    }
}
private WebViewClient webViewClient = new WebViewClient() {


 @Override
 public void onPageFinished(WebView view, String url) {
     view.loadUrl("javascript:window.ResponseChecker.setHtml"
                    + "(document.body.innerHTML);");
        }
 }