zoukankan      html  css  js  c++  java
  • IOS开发 网络发展史(NSURLProtocol)

    概念

    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;
    }
  • 相关阅读:
    递归树结构封装
    Excel父子数据导入
    资产类标准数据源抽取顺序
    资产模型数据初始化时应注意的事项
    Input Parameters and Variables in SAP HANA Modeling
    2LIS_03_BX数据源的用处及抽取步骤
    BW资产数据源抽取顺序
    MM物料移动BW数据源介绍
    关于BW newGL datasource
    使用SLT系统抽数到hana系统
  • 原文地址:https://www.cnblogs.com/guchengfengyun/p/8171249.html
Copyright © 2011-2022 走看看