我必须从帖子网址获取 JSON。这是我的网址 网址:链接
结果处理后:
{
"success": false,
"error_code": null,
"data": {
"transaction_status": 0
}
}
当我点击这个 url 时,多个 url 在内部调用一个长的过程 JSON 响应将显示在WebView. 我需要通过点击这个 url 来获取这个 JSON 响应而不显示WebView
请任何人帮助我解决这个问题。
谢谢
我必须从帖子网址获取 JSON。这是我的网址 网址:链接
结果处理后:
{
"success": false,
"error_code": null,
"data": {
"transaction_status": 0
}
}
当我点击这个 url 时,多个 url 在内部调用一个长的过程 JSON 响应将显示在WebView. 我需要通过点击这个 url 来获取这个 JSON 响应而不显示WebView
请任何人帮助我解决这个问题。
谢谢
将 volley 添加到您的项目中,只需添加以下行。
compile 'com.mcxiaoke.volley:library-aar:1.0.0'
用于获取 json 响应
private void sendRequest(){
StringRequest stringRequest = new StringRequest(JSON_URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
showJSON(response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this,error.getMessage(),Toast.LENGTH_LONG).show();
}
});
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
private void showJSON(String json){
// here you can get json.
}
请遵循本教程。
http://www.androidhive.info/2012/01/android-json-parsing-tutorial/
你需要使用android API的HttpUrlConnection类访问webservice,你可以得到json字符串格式的响应。
OP(我的意思是@dev_mg99)提供的这个网址不包含“服务器端”重定向。
网页上的 JSON 数据在“Javascript”执行后出现。
据我所知,在这种情况下执行HTTP POST/GET(使用 android 中提供的任何方法)将毫无用处,因为服务器正在返回“网页”和“非 JSON 数据”。
(如果我错了,请纠正我。这样我才能学到新东西)
我想到的唯一可能的解决方案是:
1)在 WebView 中加载上述 url
2)继续检查 WebView 是否已“完全”加载
3)如果已完全加载 提取 WebView 的“html”文本并获取所需的 JSON 文本。
不知道如何编码(2)......所以无法提供任何代码。
我是怎么知道的?
第1步: 在(比如)谷歌浏览器中打开上面的网址。稍等片刻,您会看到页面重定向到带有以下文本的网页:
{"success":false,"error_code":null,"data":{"transaction_status":0}}
它看起来像一个 JSON 字符串。
第2步:禁用浏览器的JavaScript(对于谷歌浏览器:设置->显示高级设置->隐私...内容设置->Javascript...点击“不允许任何站点运行JavaScript”
第 3 步:现在,再次尝试在浏览器中打开上面的 url……页面不会重定向到任何地方。
据此,我得出结论,上面的 url 是由 JavaScript 重定向的(不是来自服务器端)