ios 獲取鏈接中各個參數值


獲取鏈接中各個參數值
//獲取鏈接中各個參數值
- (NSDictionary *)getParamsWithUrlString:(NSString *)urlString
{
    if (urlString.length == 0) {
        NSLog(@"鏈接為空!");
        return @{};
    }
    //先截取問號
    NSArray * allElements = [urlString componentsSeparatedByString:@"?"];
    NSMutableDictionary * params = [NSMutableDictionary dictionary];
    if (allElements.count == 2) {
        //有參數或者?后面為空
        NSString * paramString = allElements[1];
        //獲取參數對
        NSArray * paramsArray = [paramString componentsSeparatedByString:@"&"];
        if (paramsArray.count >= 2) {
            for (NSInteger i = 0; i<paramsArray.count; i++) {
                NSString * singleParamString = paramsArray[i];
                NSArray * singleParamSet = [singleParamString componentsSeparatedByString:@"="];
                if (singleParamSet.count == 2) {
                    NSString * key = singleParamSet[0];
                    NSString * value = singleParamSet[1];
                    if (key.length > 0 || value.length > 0) {
                        [params setObject:value.length > 0 ? value:@"" forKey:key.length > 0 ? key:@""];
                    }
                }
            }
        }else if (paramsArray.count == 1){ //無& url只有?后一個參數
            NSString * singleParamString = paramsArray[0];
            NSArray * singleParamSet = [singleParamString componentsSeparatedByString:@"="];
            if (singleParamSet.count == 2) {
                NSString * key = singleParamSet[0];
                NSString * value = singleParamSet[1];
                if (key.length > 0 || value.length > 0) {
                    [params setObject:value.length > 0 ? value:@"" forKey:key.length > 0 ? key:@""];
                }
            }else{
                //問號后面什么都沒有 xxxx? 無需處理
            }
        }
        //整合url及參數
        return [params copy];
    }else if (allElements.count > 2){
        NSLog(@"鏈接不合法!鏈接包含多個?");
        return @{};
    }else{
        NSLog(@"鏈接不包含參數!");
        return @{};
    }
}

使用:
NSString * url = @"https://www.aaa.com/?key1=value1&key2=value2";
NSDictionary * dic = [self getParamsWithUrlString:url];

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容