1. 程式人生 > >把介面URL序列化並輸出--樑澤

把介面URL序列化並輸出--樑澤

+ (NSString*)lz_urlEncode:(NSString*)str {
    NSString *result = (__bridge_transfer NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (__bridge CFStringRef)str, CFSTR("."), CFSTR(":/?#[]@!$&'()*+,;="), kCFStringEncodingUTF8);
    return result;
}

+ (NSString *)lz_urlParametersStringFromParameters:(NSDictionary *)parameters {
    NSMutableString *urlParametersString = [[NSMutableString alloc] initWithString:@""];
    if (parameters && parameters.count > 0) {
        for (NSString *key in parameters) {
            NSString *value = parameters[key];
            value = [NSString stringWithFormat:@"%@",value];
            value = [self lz_urlEncode:value];
            [urlParametersString appendFormat:@"&%@=%@", key, value];
        }
    }
    return urlParametersString;
}



+ (NSString *)lz_urlStringWithOriginUrlString:(NSString *)originUrlString appendParameters:(NSDictionary *)parameters {
    NSString *filteredUrl = originUrlString;
    NSString *paraUrlString = [self lz_urlParametersStringFromParameters:parameters];
    if (paraUrlString && paraUrlString.length > 0) {
        if ([originUrlString rangeOfString:@"?"].location != NSNotFound) {
            filteredUrl = [filteredUrl stringByAppendingString:paraUrlString];
        } else {
            filteredUrl = [filteredUrl stringByAppendingFormat:@"?%@", [paraUrlString substringFromIndex:1]];
        }
        return filteredUrl;
    } else {
        return originUrlString;
    }
}
我們在調起請求前  呼叫 
lz_urlStringWithOriginUrlString:(NSString *)originUrlString appendParameters:(NSDictionary *)parameters 
這個方法就OK了。我是這樣用的
NSLog(@"POST型別序列化介面:%@",[AFHTTPSessionManager lz_urlStringWithOriginUrlString:url appendParameters:parameters]);
            NSLog(@"POST型別介面:%@ \n引數:%@",url,parameters);



Parameters