2017-02-15 27 views
0

我必須從帖子url獲取JSON。 這是我的網址 網址:link如何從帖子url獲取json數據

結果處理後:

{ 
"success": false, 
"error_code": null, 
"data": { 
     "transaction_status": 0 
     } 
} 

當我打這個URL,URL多發在內部一個漫長的過程之後調用JSON響應將在WebView顯示。我需要通過訪問此網址獲取此JSON響應而不顯示WebView

請有人幫我解決這個問題。

謝謝

+0

所以基本上你只想得到文本,由URL返回,對不對? –

回答

1

凌空添加到您的項目只需添加以下行。

compile 'com.mcxiaoke.volley:library-aar:1.0.0' 

對於GET 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. 
} 
+0

可以請你給我提供「StringRequest」類 –

+0

StringRequest是buildin class for volley library – Sasi

0

url由OP(我的意思是@ dev_mg99)提供由一個「服務器端」 重定向的。
網頁上的JSON數據出現在「Javascript」執行後。


並不亞於我知道這樣HTTP POST/GET(使用android系統中提供的任何方法)作爲服務器返回「網頁」,「不JSON數據」將在這種情況下無用。
(請糾正我,如果我錯了,讓我去學習新的東西。)

來我心中唯一可能的解決方案是:
1)根據上述網址的網頁視圖
2 )繼續檢查WebView是否已經「完全」加載
3)如果它已完全加載提取WebView的「html」文本並獲取所需的JSON文本。

不知道如何編碼(2)...所以不能提供任何代碼。


我怎樣才知道?

步驟1: 打開上述網址在(比方說)谷歌瀏覽器。等待一段時間,你會看到頁面重定向到一個網頁有以下文字:

{"success":false,"error_code":null,"data":{"transaction_status":0}} 

它看起來像一個JSON字符串。

第2步:禁用瀏覽器的JavaScript(對於谷歌瀏覽器:設置 - >顯示高級設置 - >隱私...內容設置 - > Javascript ...點擊「不允許任何網站運行JavaScript」

步驟3:現在,再次嘗試打開上面的瀏覽器的網址...該頁面將不會在任何地方重定向

據我得出結論,上面的網址是被JavaScript重定向(不是來自服務器端)