如何将字符串数组添加到HashMap <string,string =“”>然后使用Retrofit发送?

时间:2016-02-25 14:28:21

标签: java android retrofit retrofit2

我使用Retrofit 2向服务器发送API调用,但是使用参数我需要发送必须从API响应中排除的字符串数组。

我需要发送像deviceToken,feedType这样的参数,并发送排除字符串数组,因此我的带有排除字符串的网址应如下所示:

http://test.com?test[]=1&test[]=2&test[]=3

当然还有其他缺失的要求。

看看这行代码:

params.put("exclusions", Arrays.deepToString(arr));

这是我的代码:

@GET("enquiry/user-feed/")
Call<UserFeed> userFeed(@QueryMap Map<String, String>   params);

HashMap<String, String> params = new HashMap<String, String>();

params.put("deviceToken", getDeviceToken());
params.put("feedType", feedType[0]);
params.put("feedOrder", order);
params.put("feedLimit", String.valueOf(limit));   

Log.d("TAG", "exclusions: : "+ Arrays.deepToString(arr));
params.put("exclusions",  Arrays.deepToString(arr));

2 个答案:

答案 0 :(得分:0)

问题与改造无关。您有一个浮动订单,因为java.util.HashMap不保证订单。您应该使用LinkedHashMap来获取固定元素顺序。

来源:https://stackoverflow.com/a/31748890/1949658

答案 1 :(得分:0)

使用LinkedHashMap

LinkedHashMap<String, String> params = new LinkedHashMap<String, String>();

params.put("deviceToken", getDeviceToken());
params.put("feedType", feedType[0]);
params.put("feedOrder", order);
params.put("feedLimit", String.valueOf(limit));