iOS 中HTTP请求URL的转码

一个app, 使用网络请求在现如今, 基本上是必须的了...
在iOS中, 使用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]];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容