2016-02-25 35 views
0

我正在使用Retrofit 2将API调用发送到服务器,但使用参数我需要发送必须从API响应中排除的字符串数组。如何将字符串数组添加到HashMap <String,String>中,然后使用Retrofit进行发送?

我需要发送的参数,如deviceToken,的FeedType也排除发送一个字符串数组,所以我的URL字符串排除应该是这样的:

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)); 

回答

0

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

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

+0

为什么LinkedHashMap的?问题是我无法将字符串数组添加到接受键和值的字符串的哈希映射 – Zookey

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)); 
相关问题