NSHipster 之 NSURLProtocol

NSHipster 之 NSURLProtocol

link

要点

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

他的威力

怎么玩?子类化NSURLProtocol

让子类识别并控制请求

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

提供请求规范??

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

获取和设置请求的属性

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

加载请求

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

向URL加载系统注册子类

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

  • 后面来的先干事。

推荐阅读更多精彩内容

  • iOS网络编程读书笔记 Facade Tester客户端门面模式的实例(被动版本化) 被动版本化,所以硬编码URL...
    melouverrr阅读 1,004评论 3 6
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 66,899评论 12 114
  • 转载自NSURLProtocol iOS根本离不开网络——不论是从服务端读写数据、向系统分发计算任务,还是从云端加...
    夏天的风_song阅读 317评论 0 1
  • 本文是逐行翻译,便于参照原文,如有歧义或者疑问请阅读原文比较。于 2017.1.25===============...
    Auditore阅读 646评论 2 3
  • iOS开发系列--网络开发 概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博、微信等,这些应用本身可...
    lichengjin阅读 1,535评论 0 5