Android HttpUrlConnection使用相同的密钥发送多个参数

时间:2015-11-23 10:41:50

标签: java android api httpurlconnection

如何在HttpUrlConnection请求中添加多个具有相同名称的值。

示例:

HashMap<String, String> params = new HashMap<>();
params.put("key[]", value1)
params.put("key[]", value2)

如果我尝试在邮递员中添加相同的多个值,我工作正常,应用程序将只发送一个值(取决于请求属性,URLConnection setRequestProperty vs addRequestProperty)。

我想将两个值添加为具有相同名称的参数

3 个答案:

答案 0 :(得分:0)

'this'Maps无效。

摘自HashMaps上的Oracles文档: http://docs.oracle.com/javase/7/docs/api/java/util/Map.html

  

将键映射到值的对象。地图不能包含重复的键;每个键最多可以映射一个值。

Maps命令将替换put中与给定key关联的先前值(您可以将其视为基本类型的数组索引操作)。

map州的Oracle文档:

  

将指定的值与此映射中的指定键相关联。如果   地图以前包含键的映射,旧值是   替换。

     

返回与key关联的先前值,如果有,则返回null   没有密钥映射。

这可以在这里找到: http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html#put%28K,%20V%29

答案 1 :(得分:0)

或者您可以这样做,它会正常工作。

你可以像这样制作一个JSONArray

JSONArray array = new JSONArray();
array.put("value1");
array.put("value2");

//and then you can send them as parameter like this-

params.put("key", array.toString());

答案 2 :(得分:0)

params.put()无法实现,但可以使用params.add()

参考:Difference between RequestParams add() and put() in AndroidAsyncHttp