2017-02-09 67 views
0

我似乎無法弄清楚如何在Volley中傳遞一個字符串和一個對象作爲參數。我所有的調用目前只使用字符串,但對於這種特殊情況,我必須將對象和字符串的混合傳遞給API。如何在Volley中傳遞Object和String作爲參數?

 @Override 
     protected Map<String, String> getParams() { 
      Map<String, Object> params = new HashMap<>(); 
      JSONObject content = new JSONObject(); 

      try { 
       content.put("original_msg","hello"); 
       content.put("new_msg","hi"); 

       params.put("session_id", sessionId); 
       params.put("type", "reply"); 
       params.put("content", content); //the object 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 

      return params; //returning an error: Incompatible Types 
     } 
+0

你可以試試這個,如果有幫助Appart酒店:[點擊這裏](http://stackoverflow.com/questions/34746619/android-volley-how傳遞參數 - 動態?rq = 1) – stab

回答

2

JSON也被認爲是一個字符串,所有對象提供一個toString()方法使得任何亞類可以創建對象的字符串表示。

params.put("content", content.toString()); 

從你需要將其更改爲Map<String, String> params = new HashMap();

+0

哦,我的天!它的工作!:)非常感謝你!嗯...似乎hacky雖然因爲它是數據庫保存爲字符串時,它應該是一個對象....嗯... – Woppi

+0

不客氣的朋友。 – Enzokie

+0

嗯...雖然因爲在數據庫中它被保存爲字符串時,它應該是一個對象....嗯...似乎hacky ... – Woppi

-1

變化protected Map<String, String>protected Map<String, Object>

+0

你好,我也這樣做了,但有'getParams()在匿名類....與getParams()在com.android.volley.Request「;試圖使用不兼容的返回類型「。 – Woppi

+0

什麼對象調用getParams()? – SHAI

+0

這是不正確的,Volley需要一個Map josh123a123

相關問題