NSHipster 之 NSURLProtocol

NSHipster 之 NSURLProtocol

link

要点

  • Foundation库的URL加载系统是每个iOS工程师应该熟练掌握的。
  • 任何通过 NSURLConnection 进行的请求都会被系统的其他部分所拦截,这也使得当可用时显式地从硬盘加载缓存成为了可能。
  • NSURLProtocol :你不必改动应用在网络调用上的其他部分,就可以改变URL加载行为的全部细节。
  • 它是一个抽象类
  • 你可以通过子类化来定义新的或已经存在的URL加载行为。

他的威力

怎么玩?子类化NSURLProtocol

让子类识别并控制请求

直接读取本地文件,还是发起网络请求,黑客喜欢黑哪一种类型的

提供请求规范??

如果你想要用特定的某个方式来修改一个请求,应该使用 +canonicalRequestForRequest: 方法。每一个subclass都应该依据某一个规范,也就是说,一个protocol应该保证只有唯一的规范格式(虽然很多不同的请求可能是同一种规范格式)。(保证被黑了的人,被黑的方式都一样,下场都类似)

获取和设置请求的属性

黑客的工具以及套路:获取,添加,设置,移除属性

加载请求

加载环节有很多细节,可以设置这些换机中的代理方法,来达到流程的控制??

向URL加载系统注册子类

  • 要成为能够做到中间人攻击的黑客,你也要注册:)

  • 后面来的先干事。

推荐阅读更多精彩内容

  • iOS网络编程读书笔记 Facade Tester客户端门面模式的实例(被动版本化) 被动版本化,所以硬编码URL...
    melouverrr阅读 1,448评论 3 7
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 131,794评论 18 138
  • 转载自NSURLProtocol iOS根本离不开网络——不论是从服务端读写数据、向系统分发计算任务,还是从云端加...
    夏天的风_song阅读 644评论 0 1
  • 本文是逐行翻译,便于参照原文,如有歧义或者疑问请阅读原文比较。于 2017.1.25===============...
    Auditore阅读 1,271评论 4 4
  • iOS开发系列--网络开发 概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博、微信等,这些应用本身可...
    lichengjin阅读 3,174评论 2 7
  • 前两年看凯文·凯利的(Kevin Kelly)《失控》,就惊讶于二十多年前写成的这本书里,很多想法正在变成现实,我...
    山上有云阅读 883评论 1 6
  • 可能越大越眼浅,看战狼2,开头那一家人在灵堂前坚守就轻易让我红了眼眶,往后看,好多为之动容忍不住流泪的地方,好在我...
    吾見阅读 236评论 0 6
  • 今个儿睡午觉的时候枕边的手机一直在响,不耐烦地拿起手机眯着眼盯着屏幕看到底是何方神圣这般打搅我的宝贵午休(其实只是...
    一块会思考的猪红阅读 186评论 0 0