![](/img/trans.png)
[英]How to send Json String using REST to java webservice in Parameter in android?
[英]How to send array as POST parameter/payload to webservice in Android using REST
我在Web服務中使用REST。 這是當我使用form content type
(這是RAW類型)使用advance rest client
測試Web服務時發送的示例有效負載/參數:
child_id%5B%5D=1&user_id=15&group_id=1&custom=&time=17%3A17%3A00&date=&child_id%5B%5D=2
其中RAW中的child_id%5B%5D
在表單中表示child_id[]
,因此我發送了child_id
array
(在上述form
中,最左和最右)。 這里的一切都很好。
當我嘗試將其實現到Android應用程序時,會發生問題,在該應用程序中,我使用HashMap
這些有效負載/參數。 HashMap
不能在同一個鍵下存儲兩個值,所以我不能做類似的事情:
map.put("child_id[]", 1);
map.put("child_id[]", 2);
最新的看跌期權將覆蓋較早的看跌期權,因此Android應用程序將僅發送2
作為child_id
值。
我該怎么辦? 謝謝你的幫助
您可以按以下方式向數組添加索引。
map.put("child_id[0]", 1);
map.put("child_id[1]", 2);
您可以選擇一些解決方案。 最簡單的方法是創建一個類以充當參數的容器,並將其存儲在ArrayList
public class Parameter {
private String key;
private String value;
// Getters, setters, other stuff.
}
然后將其存儲在ArrayList
您還可以使一個類充當各種參數構建器。 您可能會執行以下操作:
public class Parameters {
private ArrayList<String> keys = new ArrayList<>();
private ArrayList<String> values = new ArrayList<>();
public void add(String key, String value) { ... }
public ArrayList<String> getKeys() { ... }
public ArrayList<String> getValues() { ... }
}
第二個選項需要更多的代碼,但增加了一些靈活性,應該使API更加簡潔。
另外,如您自己的評論中所述,您可以選擇使用Map<String, ArrayList<String>>
。 在上面的示例中,它也可以代替ArrayList
很好地工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.