解析url中各个参数的值

来源:互联网 发布:safe软件 编辑:程序博客网 时间:2024/04/28 08:42
NSURL* url = [NSURL urlWithString:@"http://www.xxx.com?param1=123&param2=456"];

解析出param1和parm2的值。

方法如下:

- (NSDictionary*)dictionaryFromQuery:(NSString*)query usingEncoding:(NSStringEncoding)encoding {    NSCharacterSet* delimiterSet = [NSCharacterSet characterSetWithCharactersInString:@"&;"];    NSMutableDictionary* pairs = [NSMutableDictionary dictionary];    NSScanner* scanner = [[[NSScanner alloc] initWithString:query] autorelease];    while (![scanner isAtEnd]) {        NSString* pairString = nil;        [scanner scanUpToCharactersFromSet:delimiterSet intoString:&pairString];        [scanner scanCharactersFromSet:delimiterSet intoString:NULL];        NSArray* kvPair = [pairString componentsSeparatedByString:@"="];        if (kvPair.count == 2) {            NSString* key = [[kvPair objectAtIndex:0]                             stringByReplacingPercentEscapesUsingEncoding:encoding];            NSString* value = [[kvPair objectAtIndex:1]                               stringByReplacingPercentEscapesUsingEncoding:encoding];            [pairs setObject:value forKey:key];        }    }    return [NSDictionary dictionaryWithDictionary:pairs];}