AFNetworking - 如何为一个键指定多个值

时间:2012-06-18 17:32:40

标签: afnetworking

我正在尝试使用AFHTTPClient方法“postPath”将一个参数键的多个值传递给HTTP请求。但是,参数变量是NSDictionary,因此我无法为我的密钥“email”设置多个值。我已经尝试将电子邮件值作为逗号分隔的字符串发送,但这不起作用,因为我的服务器返回错误,说我没有指定任何电子邮件值。

我在关于使用multipartFormRequestWithMethod方法的文档中读过,但我无法完全弄清楚如何使其工作。任何人都可以提供一个使用此方法的示例,其中包含单个键的多个值吗?

由于

3 个答案:

答案 0 :(得分:12)

组合一个键的多个查询值。

如果你使用NSDictionary + NSSet,你可以从NSArray获得没有[]的查询URL。

NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
[NSSet setWithObjects:@"value1", @"value2", nil], @"myKey", nil];

AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
NSURLRequest *request = [httpClient requestWithMethod:@"GET" path:@"/path" parameters:params];

PS:迟到总比没有好......

答案 1 :(得分:4)

组合一个键的多个值。

使用NSDictionary + NSArray

例如:

AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];

NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys: @"value1", @"param1", @"value2", @"param2", [NSArray arrayWithObjects:@"value3",@"value4",@"value5",nil], @"param3", nil];

NSMutableURLRequest *request = [httpClient requestWithMethod:@"POST" path:@"/yourhostpath" parameters:params];

您需要将“url”和“yourhostpath”替换为您自己的,请参考AFNetworkp的AFHttpClient演示代码。

答案 2 :(得分:2)

您无法为单个键定义多个值。但是,您可以定义一个具有数组的键,该数组本身包含多个值。

也就是说,email似乎不是一个应该有多个定义的字段。如果您确实想接受多个值,则应该将该参数重命名为emails