在AndroidAsyncHttp中RequestParams add()和put()之间的区别

时间:2014-12-25 17:11:40

标签: android android-async-http

在使用android-async-http库时,我偶然发现params.add()

我一直在使用params.put()一段时间,它似乎比add()更好,因为它允许 String 以外的数据类型(如 int 对象文件),而add()则没有。

RequestParams params = new RequestParams();

// So how is this
params.add("param_a", "abc");

// different from this
params.put("param_a", "abc");

// and which one should I use?

1 个答案:

答案 0 :(得分:16)

两个add()仅限字符串支持除外)之间的主要区别在于put()会覆盖param之前的add() params.put("etc", "etc"); params.put("key", "abc"); params.put("key", "xyz"); // Params: etc=etc&key=xyz 没有现有密钥。

例如:

params

虽然add会使用相同的密钥创建两个params.add("etc", "etc"); params.add("key", "abc"); params.add("key", "xyz"); // Params: etc=etc&key=abc&key=xyz

key

但这样做的重要性是什么?

在上面的示例中,网络服务器只会读取xyz的最后一个值,即abc而不是params.add("key[]", "a"); params.add("key[]", "b"); params.add("key[]", "c"); // Params: key[]=a&key[]=b&key[]=c // The server will read it as: "key" => ["a", "b", "c"] ,但这是useful when POSTing arrays

{{1}}
相关问题