在使用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?
答案 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}}