[Issue #555] Leaving square brackets unescaped in query string parameters

This commit is contained in:
Mattt Thompson 2012-10-03 08:49:39 -07:00
parent f9c0576f89
commit 3f3a79221a

View file

@ -88,10 +88,10 @@ static NSString * AFBase64EncodedStringFromString(NSString *string) {
}
static NSString * AFPercentEscapedQueryStringPairMemberFromStringWithEncoding(NSString *string, NSStringEncoding encoding) {
// Escape characters that are legal in URIs, but have unintentional semantic significance when used in a query string parameter
static NSString * const kAFLegalCharactersToBeEscaped = @":/.?&=;+!@$()~";
static NSString * const kAFCharactersToBeEscaped = @":/.?&=;+!@#$()~";
static NSString * const kAFCharactersToLeaveUnescaped = @"[]";
return (__bridge_transfer NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (__bridge CFStringRef)string, NULL, (__bridge CFStringRef)kAFLegalCharactersToBeEscaped, CFStringConvertNSStringEncodingToEncoding(encoding));
return (__bridge_transfer NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (__bridge CFStringRef)string, (__bridge CFStringRef)kAFCharactersToLeaveUnescaped, (__bridge CFStringRef)kAFCharactersToBeEscaped, CFStringConvertNSStringEncodingToEncoding(encoding));
}
#pragma mark -