Ios NSURLSessionTask使用NSDictionary设置参数
我几乎可以肯定,我最近看到了一种与网络相关的方法,它允许使用Ios NSURLSessionTask使用NSDictionary设置参数,ios,objective-c,nsurlrequest,nsurlsession,Ios,Objective C,Nsurlrequest,Nsurlsession,我几乎可以肯定,我最近看到了一种与网络相关的方法,它允许使用NSDictionary设置URL参数 它是新NSURLSession类的一部分,但我找不到它 本质上,不是像这样做url @"www.blah.com/something.php?value=18&name=hello" 你可以 theRequest.parameters = @{@"value":@18, @"name":@"hello"}; 这是我想象的还是存在的?为什么不自己写呢? 您可以使用它,只要在将值放入字典时
NSDictionary
设置URL参数
它是新NSURLSession类的一部分,但我找不到它
本质上,不是像这样做url
@"www.blah.com/something.php?value=18&name=hello"
你可以
theRequest.parameters = @{@"value":@18, @"name":@"hello"};
这是我想象的还是存在的?为什么不自己写呢? 您可以使用它,只要在将值放入字典时保持正确的顺序即可
- (NSString *)makeURLFromDictionary:(NSString *)url values:(NSDictionary *)dictionary
{
NSMutableString *string = [[NSMutableString alloc]initWithString:url];
[string appendString:@"?"];
for (id key in dictionary) {
[string appendString:key];
[string appendString:@"="];
[string appendString:[dictionary objectForKey:key]];
[string appendString:@"&"];
}
//this will remove the last &
[string deleteCharactersInRange:NSMakeRange([string length]-1, 1)];
return string;
}
请检查返回的字符串,如果我没有错的话,你应该把它倒过来,F.I.L.O(先进先出风格)
输入dict的值,如下所示:
NSMutableDictionary *dict = [[NSMutableDictionary alloc]init];
[dict setObject:@"hello" forKey:@"name"];
[dict setObject:@"18" forKey:@"value"];
NSString *urlString = [self makeURLFromDictionary:@"www.blah.com/somthing.php" values:dict];
希望我能帮你。看看这个,如果它不存在,为什么不写呢?:)经常使用这种模式
NSURLSession
方法本身并不将字典作为请求的参数,但编写代码将字典转换为JSON或application/x-www-form-urlencoded
请求并不困难。但是AFNetworking通常会让你的生活更轻松。@Rob我一直在考虑使用AFNetworking。我不知道是否真的需要它。我正在启动一个全新的项目,所以我会看一看。+1顺便说一句,请确保您在=
之后添加的值上调用CFURLCreateStringByAddingPercentEscapes
(如本章后半部分所示)。