5

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

我确实阅读了有关使用 multipartFormRequestWithMethod 方法的文档,但我无法完全弄清楚如何使其工作。谁能提供一个使用此方法的示例,该方法具有单个键的多个值?

谢谢

富有的

4

3 回答 3

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:迟到总比没有好...

于 2013-08-08T16:33:36.403 回答
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”替换为您自己的,请参考 AFNetworking 的 AFHttpClient 演示代码。

于 2012-11-18T03:15:51.327 回答
2

您不能为单个键定义多个值。但是,您可以定义一个键来拥有一个数组,该数组本身包含多个值。

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

于 2012-06-18T17:48:37.797 回答