我正在尝试使用AFHTTPClient方法“postPath”将一个参数键的多个值传递给HTTP请求。但是,参数变量是NSDictionary,因此我无法为我的密钥“email”设置多个值。我已经尝试将电子邮件值作为逗号分隔的字符串发送,但这不起作用,因为我的服务器返回错误,说我没有指定任何电子邮件值。
我在关于使用multipartFormRequestWithMethod方法的文档中读过,但我无法完全弄清楚如何使其工作。任何人都可以提供一个使用此方法的示例,其中包含单个键的多个值吗?
由于
富
答案 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
。