ios url params截取
- (NSMutableDictionary *)getURLParameters:(NSString *)urlStr { NSMutableDictionary *params = [NSMutableDictionary dictionary];// 以字典形式将参数返回 NSString *parametersString = urlStr; NSRange range = [urlStr rangeOfString:@"?"];// 查找参数 if (range.location != NSNotFound) { parametersString = [urlStr substringFromIndex:range.location + 1]; } if ([parametersString containsString:@"&"]) {// 多个参数,分割参数 NSArray *urlComponents = [parametersString componentsSeparatedByString:@"&"]; for (NSString *keyValuePair in urlComponents) {// 生成Key/Value NSArray *pairComponents = [keyValuePair componentsSeparatedByString:@"="]; NSString *key = [pairComponents.firstObject stringByRemovingPercentEncoding]; NSString *value = [pairComponents.lastObject stringByRemovingPercentEncoding]; if (key == nil || value == nil) {// Key不能为nil continue; } id existValue = [params valueForKey:key]; if (existValue != nil) {// 已存在的值,生成数组 if ([existValue isKindOfClass:[NSArray class]]) {// 已存在的值生成数组 NSMutableArray *items = [NSMutableArray arrayWithArray:existValue]; [items addObject:value]; [params setValue:items forKey:key]; } else {// 非数组 [params setValue:@[existValue, value] forKey:key]; } } else {// 设置值 [params setValue:value forKey:key]; } } } else {// 单个参数 生成Key/Value NSArray *pairComponents = [parametersString componentsSeparatedByString:@"="]; if (pairComponents.count == 1) {// 只有一个参数,没有值 return nil; } NSString *key = [pairComponents.firstObject stringByRemovingPercentEncoding]; NSString *value = [pairComponents.lastObject stringByRemovingPercentEncoding]; if (key == nil || value == nil) {// Key不能为nil return nil; } [params setValue:value forKey:key];// 设置值 } return params; }
欢迎关注本站公众号,获取更多信息