Ios 如何多次使用相同的键构建URL?
我正在构建一个iOS应用程序,它可以向URL发出Ios 如何多次使用相同的键构建URL?,ios,objective-c,afnetworking-2,Ios,Objective C,Afnetworking 2,我正在构建一个iOS应用程序,它可以向URL发出GET请求。对于它发出的所有请求,我根据基本url构建url,然后使用NSDictionaryKey-Value\u对添加参数 我还使用AFNetworking 2.0来发出请求——它还使用提供的NSDictionary键构建URL 我现在遇到了一个问题,我需要使用的web服务需要多个键是相同的,具有不同的值。使用NSDictionary 这意味着我无法成功运行web服务 下面是一个我需要最终URL的示例- ..…&includeDeserids=
GET
请求。对于它发出的所有请求,我根据基本url构建url,然后使用NSDictionary
Key-Value\u对添加参数
我还使用AFNetworking 2.0
来发出请求——它还使用提供的NSDictionary键构建URL
我现在遇到了一个问题,我需要使用的web服务需要多个键是相同的,具有不同的值。使用NSDictionary
这意味着我无法成功运行web服务
下面是一个我需要最终URL的示例-
..…&includeDeserids=12345&includeDeserids=2345
上面URL的斜体部分是我试图使用AFNetworking和NSDictionary构建的。我想我将不得不使用比NSDictionary更先进的东西来实现这一点
有人有什么想法吗
编辑
如果我使用NSSet像这样设置NSDictionary参数,找到了一半的解决方案:
[self.parameters setObject:[NSSet setWithObjects:@"12345",@"2345", nil] forKey:@"IncludedUserIds"];
这是我需要的。不过,我有一个跟进问题:
这些值需要动态添加到NSSet-如何创建一个可以在运行时接受额外值的NSSet 当然可以,因为
&includederserids=12345&includederserids=2345
应该与&includederserids=123452345
相同
因此,在paramaters字典中,只有一个数组作为键的值。我设法解决了这个问题: 我刚刚在NSDictionaray中创建了如下对象:
[self.myDictionary setObject:[NSSet setWithArray:self.myArray] forKey:@"myKeyNeeded];
数组中有NSString对象,这似乎工作得很好。
由于需要从NSDictionary中轻松删除对象,我使用了array而不是NSMutableSet 这就是问题所在——服务器不理解逗号分隔的字符串。它将每个“includeDeserID”视为一个数组。因此IncludeDeserids=1234523456-不存在。但是,includeDeserids=12345,includeDeserids=2345-返回两个存在的值。那么使用
AFNetworking
,至少使用默认类,您会遇到真正的问题。您必须滚动自己的AFURLConnectionOperation
子类,该子类将NSArray
作为参数。也就是说,您的服务器实现也没有遵守HTTP标准,这是这里真正的问题;我找到了一种解决办法。你知道如何解决最后一点吗?非常感谢您的帮助。在最后一部分中,使用NSMutableSet
我使用了一个NSMutableArray,因为我需要能够删除某个值-我不认为使用NSMutableSet可以轻松实现这一点,因为它没有objectAtIndex方法。谢谢你!!