Modifies the query paramter function to correctly handle argument arrays. Now it adds the key[]=value1&key[]=value2 instead of key=(value1,value2) which isn't compatible with most HTTP servers.
This commit is contained in:
parent
920b01d33f
commit
0da3ec89d2
@ -90,10 +90,19 @@ NSString * AFURLEncodedStringFromStringWithEncoding(NSString *string, NSStringEn
|
||||
NSString * AFQueryStringFromParametersWithEncoding(NSDictionary *parameters, NSStringEncoding encoding) {
|
||||
NSMutableArray *mutableParameterComponents = [NSMutableArray array];
|
||||
for (id key in [parameters allKeys]) {
|
||||
NSString *component = [NSString stringWithFormat:@"%@=%@", AFURLEncodedStringFromStringWithEncoding([key description], encoding), AFURLEncodedStringFromStringWithEncoding([[parameters valueForKey:key] description], encoding)];
|
||||
[mutableParameterComponents addObject:component];
|
||||
}
|
||||
|
||||
id arg = [parameters valueForKey:key];
|
||||
if ([arg isKindOfClass:[NSArray class]]) {
|
||||
// For arrays, we add each item to the query string
|
||||
NSString *keyComponent = AFURLEncodedStringFromStringWithEncoding([NSString stringWithFormat:@"%@[]", [key description]], encoding);
|
||||
for (id obj in (NSArray *)arg) {
|
||||
NSString *component = [NSString stringWithFormat:@"%@=%@", keyComponent, AFURLEncodedStringFromStringWithEncoding([obj description], encoding)];
|
||||
[mutableParameterComponents addObject:component];
|
||||
}
|
||||
} else {
|
||||
NSString *component = [NSString stringWithFormat:@"%@=%@", AFURLEncodedStringFromStringWithEncoding([key description], encoding), AFURLEncodedStringFromStringWithEncoding([arg description], encoding)];
|
||||
[mutableParameterComponents addObject:component];
|
||||
}
|
||||
}
|
||||
return [mutableParameterComponents componentsJoinedByString:@"&"];
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user