美文网首页
iOS AFNetworking URL包含特殊字符处理

iOS AFNetworking URL包含特殊字符处理

作者: 丶天空蓝丶 | 来源:发表于2020-06-30 15:33 被阅读0次

一:之前开发中,跟后台交互请求数据都放在body里面,直接将字典丢到AFNetworking的parameters参数里面就OK了。但是后面后台交互请求数据都放在header里面了,现在前端直接将参数放在parameters里面将会出现各种问题。需要将字典拼接成URL?key=value&key=value形式。此时,如果直接拼接使用的话,如果里面包含中文,则也会出错。

二:那么就需要对URL进行转译。之前的方法是

NSString* encodedString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

但是现在这个方法被弃用了,需要换成

  NSString *encodedString = [urlStr stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];

三:但是如果包含特殊字符的话,特殊字符会被转换成%234这样的字符串,又出问题了。此时又需要换一个方法。

- (NSString *)urlQueryStringWithDic:(NSDictionary *)dic {
 
    NSMutableString *string = [NSMutableString string];
    for (NSString *key in [dic allKeys]) {
        if ([string length]) {
            [string appendString:@"&"];
        }
        CFStringRef escaped = CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)[[dic objectForKey:key] description], NULL,(CFStringRef)@"!*'();:@&=+$,/?%#[]",kCFStringEncodingUTF8);
        [string appendFormat:@"%@=%@", key, escaped];
        CFRelease(escaped);
    }
    return string;
}

最后,吐槽一下,请求数据为啥不能老老实实的放在body里面。

相关文章

  • iOS AFNetworking URL包含特殊字符处理

    一:之前开发中,跟后台交互请求数据都放在body里面,直接将字典丢到AFNetworking的parameters...

  • [AFJSONRequestSerializer request

    在使用AFNetworking时,如果Url中包含空格,文字,或者特殊字符时,会崩溃: [AFJSONReques...

  • iOS HTTP请求 URL中含有特殊字符处理

    iOS HTTP请求 URL中含有特殊字符 !$&'()*+,;= 处理 有些符号在URL中是不能直接传递的,如果...

  • iOS URL特殊字符处理

    原文网址 : http://www.jianshu.com/p/ed64b583002c 使用了原文的方法后系统报...

  • iOS URL特殊字符处理

    我们在网络传输的过程中,难免会遇到特殊字符,而这些特殊字符是无法被识别的,例如"+"会变强行替换成空格,这个时候,...

  • iOS string转utf8

    网络请求url中如果包含空格或者中文字符串的话,需要单独处理 oc中 swift中 如果url中包含 # 等特殊字...

  • iOS url出现特殊字符处理

    stringByAddingPercentEscapesUsingEncoding(只对 `#%^{}[]|"<>...

  • Foundation - NSCharacterSet

    我目前使用过的场景: 1、可以用来处理url上的特殊字符工作记录 - URL编码,特殊字符处理2、可以用来限制文本...

  • NSCharacterSet

    学会NSCharacterSet,再也不怕各种字符串处理!!url出现特殊字符处理-- stringByAddin...

  • 网址URL中特殊字符转义编码

    网址URL中特殊字符转义编码字符 - URL编码值 URL特殊字符转义,URL中一些字符的特殊含义,基...

网友评论

      本文标题:iOS AFNetworking URL包含特殊字符处理

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