2016-04-06 177 views
0

我使用Volley在Android設備和Web服務器之間傳輸數據。Android Volley POST Json到服務器

我發現有關將數據列表發送到服務器的問題。

例如,我的課將生成的數據集是這樣的:

{ 
    "1": { 
    "1_aID": "5", 
    "2_aID": "5", 
    "3_aID": "5", 
    "4_aID": "5" 
    }, 
    "2": { 
    "1_bID": "3", 
    "2_bID": "3", 
    "3_bID": "3" 
    }, 
    "3": { 
    "1_cID": "4" 
    } 
} 

我怎樣才能將這些數據發送到服務器?

我發現一些Post數據到服務器的教程。它必須使用hashmap。 任何更好的解決方案來處理這種情況?

+1

那麼在我的情況下,我已經數組轉換爲字符串,然後發送數據到服務器我有這樣的數據是我的應用程序[{「color」:「yellow」},{「color」:「green」}] –

+0

您面臨的問題是什麼? –

+0

你是JsonRequest類嗎? – Jois

回答

1
  1. 使像波紋管齊射請求這需要像方法POST/GETurlresponse & error監聽器。併發送你的json覆蓋 getBody()方法,在其中傳遞你想發送的json。
  2. 作出RequestQueue &將請求添加到它。你可能會 啓動它調用start()

試試這個:

// Instantiate the RequestQueue. 
    RequestQueue queue = Volley.newRequestQueue(this); 
    String url ="http://www.google.com"; 

    // Request a string response from the provided URL. 
    StringRequest stringRequest = new StringRequest(Request.Method.POST, url, 
      new Response.Listener<String>() { 
       @Override 
       public void onResponse(String response) { 
        // your response 

       } 
      }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      // error 
     } 
    }){ 
     @Override 
     public byte[] getBody() throws AuthFailureError { 
      String your_string_json = ; // put your json 
      return your_string_json.getBytes(); 
     } 
    }; 
    // Add the request to the RequestQueue. 
    queue.add(stringRequest); 
    requestQueue.start(); 

欲瞭解更多信息請參閱this

+0

如果您使用的是PHP,請不要忘記這個JSON將存儲在'php:// input'中,而不是'$ _REQUEST'中。獲取它像'$ obj = json_decode(file_get_contents(「php:// input」));' –

1

嘗試此

JSONObject rootObj = new JSONObject(); 
JSONObject oneObject = new JSONObject(); 
oneObject.put("1_aID","5"); 
... 
... 
JSONObject threeObject = new JSONObject(); 
oneObject.put("1_cID","4"); 
rootObj("1",oneObject); 
... 
... 
rootObj("3",threeObject); 

new JsonObjectRequest(Request.Method.POST, 
       url, 
       rootObj.toString(), 
responselistner, 
errorlistner); 
相關問題