产品介绍
应用场景
产品优势
产品限制
// 注册拦截请求的 NSURLProtocol[NSURLProtocol registerClass:[MSDKDnsHttpMessageTools class]];// 需要设置 SNI 的 URL,比如 https://www.qq.comNSString *originalUrl = @"your url";NSURL *url = [NSURL URLWithString:originalUrl];NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];// NSURLConnection 例子self.connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];[self.connection start];// NSURLSession 例子NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];NSArray *protocolArray = @[ [MSDKDnsHttpMessageTools class] ];configuration.protocolClasses = protocolArray;NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:[NSOperationQueue mainQueue]];self.task = [session dataTaskWithRequest:request];[self.task resume];// AFNetworking 例子NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];NSArray *protocolArray = @[[MSDKDnsHttpMessageTools class]];config.protocolClasses = protocolArray;AFHTTPSessionManager* sessionManager = [[AFHTTPSessionManager alloc] initWithSessionConfiguration:config];sessionManager.responseSerializer = [AFHTTPResponseSerializer serializer];NSURLSessionDataTask* task = [sessionManager dataTaskWithRequest:request uploadProgress:^(NSProgress * _Nonnull uploadProgress) {NSLog(@"update upload progress %@", uploadProgress.description);} downloadProgress:^(NSProgress * _Nonnull downloadProgress) {NSLog(@"update download progress %@", downloadProgress.description);} completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) {NSLog(@"request complete ==== response: %@ ===== error: %@", [NSString stringWithFormat:@"%@", responseObject], error);}];[task resume];
#pragma mark - SNI 场景,仅调用一次即可,请勿多次调用/**SNI 场景下设置需要拦截的域名列表建议使用该接口设置,仅拦截 SNI 场景下的域名,避免拦截其它场景下的域名@param hijackDomainArray 需要拦截的域名列表*/- (void) WGSetHijackDomainArray:(NSArray *)hijackDomainArray;/**SNI 场景下设置不需要拦截的域名列表@param noHijackDomainArray 不需要拦截的域名列表*/- (void) WGSetNoHijackDomainArray:(NSArray *)noHijackDomainArray;
文档反馈