美文网首页
iOS 中HTTP请求URL的转码

iOS 中HTTP请求URL的转码

作者: chile | 来源:发表于2016-07-13 20:38 被阅读600次

    一个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]];
    

    相关文章

      网友评论

          本文标题:iOS 中HTTP请求URL的转码

          本文链接:https://www.haomeiwen.com/subject/snqejttx.html