一個(gè)app, 使用網(wǎng)絡(luò)請(qǐng)求在現(xiàn)如今, 基本上是必須的了...
在iOS中, 使用HTTP請(qǐng)求, 需要對(duì)URL進(jìn)行一些處理...
有一些特殊字符, 在發(fā)送HTTP請(qǐng)求的時(shí)候, 需要進(jìn)行轉(zhuǎn)碼, 主要是參數(shù)里的特殊字符:
!*'();:@&=+$,/?%#[]
轉(zhuǎn)碼
- (NSString *)URLEncode:(NSString *)string {
NSString *encodedString = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,(CFStringRef)string,NULL,(CFStringRef)@"!*'();:@&=+$,/?%#[]",kCFStringEncodingUTF8));
return encodedString;
}
解碼
- (NSString *)URLDecode:(NSString *)string {
NSString *decodedString = (__bridge_transfer NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(NULL, (__bridge CFStringRef)url, CFSTR(""), CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding));
return decodedString;
}
一個(gè)完整的url
而對(duì)于一個(gè)完整的url
來(lái)說(shuō), 可以使用下面的語(yǔ)句來(lái)進(jìn)行轉(zhuǎn)碼:
url = [url stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];