mPaaS

mPaaS H5容器 拦截网络请求

2021-04-01  本文已影响0人  山已几孑

mPaaS中,拦截网络请求有什么用?

大概说几点:

拦截请求步骤:
1.创建Plugin,@interface CustomH5Plugin4Proxy : NBPluginBase

2.监听kEvent_Proxy_Request_Start_Handler

- (void)pluginDidLoad
 {
     self.scope = kPSDScope_Proxy;
     [self.target addEventListener: kEvent_Proxy_Request_Start_Handler withListener:self useCapture:NO];
     [super pluginDidLoad];
 }

  1. 实现监听方法
- (void)handleEvent:(PSDEvent *)event
  {
      [super handleEvent:event];
      
      NSLog(@"kPSDScope_Scene :: %@", event.eventType);
      if ([kEvent_Proxy_Request_Start_Handler isEqualToString:event.eventType]) {
          PSDProxyEvent * e = (PSDProxyEvent *)event;

          NSURLRequest * request = e.request;

//          TODO: 可以通过 e.context.currentSession.createParam.expandParams;获取启动参数,注入session
              NSLog(@"kEvent_Proxy_Request_Start_Handler :: %@", request.URL.absoluteString);
// 修改缓存方式为忽略缓存
              NSMutableURLRequest * rr = [[NSMutableURLRequest alloc]initWithURL:e.request.URL cachePolicy:(NSURLRequestReloadIgnoringCacheData) timeoutInterval:30];
// 为请求注入自定义Cookie
              NSString * temp = [self getWebViewCookie:request.URL]; // 根据url获取cookie
             [rr setValue:[NSString stringWithFormat:@"%@",temp] forHTTPHeaderField:@"Cookie"];
              e.request = rr;
      }
  }
上一篇下一篇

猜你喜欢

热点阅读