mPaaS中,拦截网络请求有什么用?
大概说几点:
- 为请求注入自定义session
- 为请求单独设置缓存方式
- 转发
拦截请求步骤:
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];
}
- 实现监听方法
- (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;
}
}