zoukankan      html  css  js  c++  java
  • 第1年5月6日 iOS 拦截网络请求后进行网址或ip替换

    1.

    #import "ReplaceURLProtocol.h"
    // 为了避免canInitWithRequest和canonicalRequestForRequest的死循环
    static NSString *const URLProtocolHandledKey = @"URLProtocolHandledKey";
     
    // 老url网址
    static NSString *const  old_url = @"baidu.com";
    // 新url网址
    static NSString *const  new_url = @"google.com";
    @interface ReplaceURLProtocol()<NSURLSessionDelegate>
    @property(nonatomic,strong)NSURLSession * session;
    @end
     
    @implementation ReplaceURLProtocol
    +(BOOL)canInitWithRequest:(NSURLRequest *)request
    {
      return YES;
    }
    //改变请求request
    +(NSURLRequest *)canonicalRequestForRequest:(NSURLRequest *)request
    {
     // 业务逻辑写这里
      return request;
    }
     
    //开始请求
    -(void)startLoading
    {
     //业务逻辑写这里
    }
     
    //停止请求
    -(void)stopLoading
    {
    }
     
    #pragma mark ---- NSURLSessionDelegate
    /*
      NSURLSessionDelegate接到数据后,通过URLProtocol传出去
     */
    - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error
    {
      if (error)
      {
        [self.client URLProtocol:self didFailWithError:error];
      }
      else
      {
        [self.client URLProtocolDidFinishLoading:self];
      }
    }
     
    - (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveResponse:(NSURLResponse *)response completionHandler:(void (^)(NSURLSessionResponseDisposition))completionHandler {
      
      [self.client URLProtocol:self didReceiveResponse:response cacheStoragePolicy:NSURLCacheStorageNotAllowed];
      completionHandler(NSURLSessionResponseAllow);
      
    }
     
    - (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data
    {
      [self.client URLProtocol:self didLoadData:data];
    }
     
    @end

    https://blog.csdn.net/zhangzeshuai/article/details/106934481

  • 相关阅读:
    CDOJ 92 – Journey 【LCA】
    LCA-Tarjan算法
    【模板】无向图的割顶
    Codeforces 190E
    TwoSAT算法模板
    【转】STL之二分查找 (Binary search in STL)
    【转】数论模板
    【转】计算几何模板
    【转】string常用函数
    Codeforces 245G Suggested Friends
  • 原文地址:https://www.cnblogs.com/javastart/p/14733724.html
Copyright © 2011-2022 走看看