IOS开发 网络发展史(NSURLProtocol)
2018-01-02 01:43
127 查看
概念
NSURLProtocol也是苹果众多黑魔法中的一种,使用它可以轻松地重定义整个URL Loading System。当你注册自定义NSURLProtocol后,就有机会对所有的请求进行统一的处理,基于这一点它可以让你: 1.自定义请求和响应 2.提供自定义的全局缓存支持 3.重定向网络请求 4.提供HTTP Mocking (方便前期测试) 5.其他一些全局的网络请求修改需求
拦截网路请求
子类化NSURLProtocol并注册 @interface CustomURLProtocol : NSURLProtocol @end 然后在application:didFinishLaunchingWithOptions:方法中注册该CustomURLProtocol,一旦注册完毕后,它就有机会来处理所有交付给URL Loading system的网络请求。 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //注册protocol [NSURLProtocol registerClass:[CustomURLProtocol class]]; return YES; }
CaninitRequest
+ (BOOL)canInitWithRequest:(NSURLRequest *)request { //只处理http和https请求 NSString *scheme = [[request URL] scheme]; if ( ([scheme caseInsensitiveCompare:@"http"] == NSOrderedSame || [scheme caseInsensitiveCompare:@"https"] == NSOrderedSame)) { //看看是否已经处理过了,防止无限循环 if ([NSURLProtocol propertyForKey:URLProtocolHandledKey inRequest:request]) { return NO; } return YES; } return NO; }
相关文章推荐
- IOS 开发 网络发展史(基础知识)
- IOS开发 网络发展史(NSURLCach)
- IOS 开发 网络发展史(URLConnection)
- IOS开发网络加载图片缓存策略之──ASIDownloadCache缓存策略
- IOS开发之异步加载网络图片并缓存本地实现瀑布流(二)
- iOS开发工具-网络封包分析工具Charles
- ios开发中网络和设备名称判断
- IOS开发之网络编程开源类 Reachability应用
- IOS开发网络数据之AFNetworking使用
- iOS开发中,通过URL地址获取网络上的图片
- Ios开发对第三方框架AFNetWorking网络访问的封装使用
- iOS开发网络—数据安全
- iOS开发通过NSURLProtocol实现UIWebView的离线缓存(离线加载),OC版和Swift3.0版
- iOS网络开发基础--向服务器发送数据的方式
- iOS开发网络篇—监测网络状态
- iOS开发------之runtime的运用-类与对象&&&获取当前网络状态
- 【iOS开发-网络】使用NSURLSessionDownloadTask下载任务(不能知道下载进度)
- IOS网络开发NSURLSession详解(一)概述
- IOS开发网络加载图片缓存策略之──ASIDownloadCache缓存策略