我创建了一个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终端,我不在乎。
感谢。
答案 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);");
}
}