NSHipster 之 NSURLProtocol

NSHipster 之 NSURLProtocol

link

要点

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

他的威力

  • 拦截图片加载请求,转为从本地文件加载
  • 为了测试对HTTP返回内容进行mock和stub
  • 对发出请求的header进行格式化
  • 对发出的媒体请求进行签名
  • 创建本地代理服务,用于数据变化时对URL请求的更改
  • 故意制造畸形或非法返回数据来测试程序的鲁棒性
  • 过滤请求和返回中的敏感信息
  • 在既有协议基础上完成对 NSURLConnection 的实现且与原逻辑不产生矛盾??

怎么玩?子类化NSURLProtocol

让子类识别并控制请求

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

提供请求规范??

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

获取和设置请求的属性

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

加载请求

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

向URL加载系统注册子类

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

  • 后面来的先干事。

你可能感兴趣的:(NSHipster 之 NSURLProtocol)