【问题标题】:Difference between RequestParams add() and put() in AndroidAsyncHttpAndroidAsyncHttp中RequestParams add()和put()的区别
【发布时间】:2015-02-23 07:13:08
【问题描述】:

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

我使用params.put() 已经有一段时间了,它似乎比add() 更好,因为它允许String 以外的数据类型(如int、long, object, file) 而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?

【问题讨论】:

  • 对数组使用add(),对其他使用put()。

标签: android android-async-http


【解决方案1】:

两者之间的主要区别(add() 仅支持字符串除外)是put() 用现有密钥覆盖先前存在的param,而add()没有。

例如:

params.put("etc", "etc");
params.put("key", "abc");
params.put("key", "xyz");

// Params: etc=etc&key=xyz

虽然添加创建两个具有相同密钥的params:

params.add("etc", "etc");
params.add("key", "abc");
params.add("key", "xyz");

// Params: etc=etc&key=abc&key=xyz

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

在上面的例子中,网络服务器只会读取key的最后一个值,即xyz而不是abc,但这是useful when POSTing arrays:

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"]

【讨论】:

    猜你喜欢
    • 2012-08-24
    • 1970-01-01
    • 1970-01-01
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    相关资源
    最近更新 更多