iOSにおけるHTTPリクエストURLのトランスコード
1029 ワード
iOSでは、HTTPリクエストを使用してURLを処理する必要があります.
いくつかの特殊な文字があって、HTTPの要求を送る時、トランスコードを行う必要があって、主にパラメータの中の特殊な文字です:
トランスコード
デコード
完全なurl
完全な
いくつかの特殊な文字があって、HTTPの要求を送る時、トランスコードを行う必要があって、主にパラメータの中の特殊な文字です:
!*'();:@&=+$,/?%#[]
トランスコード
- (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;
}
完全なurl
完全な
url
の場合、次の文を使用してトランスコードすることができます.url = [url stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];