网络缓存分析

特殊字符的转译

    NSString *url = @"http://www.baidu.com/test=1=+&===中文==";
    NSString *urlOne = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    
    static NSString * const kAFCharactersGeneralDelimitersToEncode = @":#[]@"; // does not include "?" or "/" due to RFC 3986 - Section 3.4
    static NSString * const kAFCharactersSubDelimitersToEncode = @"!$&'()*+,;=";
    NSMutableCharacterSet * allowedCharacterSet = [[NSCharacterSet URLQueryAllowedCharacterSet] mutableCopy];
    [allowedCharacterSet removeCharactersInString:[kAFCharactersGeneralDelimitersToEncode stringByAppendingString:kAFCharactersSubDelimitersToEncode]];
    NSString *urlT = [url stringByAddingPercentEncodingWithAllowedCharacters:allowedCharacterSet];

针对于特殊字符,urlOne只能将中文进行转码,如果需要将其他特殊字符也进行转码,就必须要用urlT这样的方法

 根据RFC 3986的规定:URL百分比编码的保留字段分为:
 1.   :  #  [  ]  @  ?  /
 2.   !  $  &  '  (  )  *  +  ,  ; =
 ?和/在query表中允许不被转译,  :#[]@和!$&'()*+,;= 都要被转译,
 也就是在URLQueryAllowedCharacterSet中删除这些字符

下载的缓存数据一般在当程序进入后台的时候,才进行删除,一般的本地会存储一周

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,103评论 25 709
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,038评论 3 119
  • 筛子底,眼眼多 做啥都要讲科学 科学种田实在谄 既省力,又高产 航天科技是尖端 飞船嗖地蹿上天 航海科技令人叹 骄...
    泰山寒梅阅读 968评论 2 8
  • 一朵花啊 在冬天里孤零零的开放 忧郁,暗香,茁壮 你是最美的花 你有你的世界 我不能为你施肥,浇灌 你就在那孤傲的...
    冷冬年阅读 1,085评论 2 4
  • 今晚是在三亚的最后一晚,算着日落时间去拍了夕阳,连自己都被眼前的美景打动,霞光下的潮汐之间似乎能带走所有污垢,让所...
    张叁叨阅读 3,418评论 0 1