美文网首页iOS开发资料收集区iOS 进阶知识集程序员
iOS开发 如何判断网络请求是否开启了代理

iOS开发 如何判断网络请求是否开启了代理

作者: 嫌疑人zx | 来源:发表于2017-04-28 15:04 被阅读818次

即便很多公司使用了Https,但是使用Charles,同样是可以破解的,破解方法。网上找了很多方法都是MRC的,这里给大家搞了一个ARC的方法,仅供参考!

- (BOOL)getProxyStatus {
    NSDictionary *proxySettings =  (__bridge NSDictionary *)(CFNetworkCopySystemProxySettings());
    NSArray *proxies = (__bridge NSArray *)(CFNetworkCopyProxiesForURL((__bridge CFURLRef _Nonnull)([NSURL URLWithString:@"http://www.baidu.com"]), (__bridge CFDictionaryRef _Nonnull)(proxySettings)));
    NSDictionary *settings = [proxies objectAtIndex:0];
    
    NSLog(@"host=%@", [settings objectForKey:(NSString *)kCFProxyHostNameKey]);
    NSLog(@"port=%@", [settings objectForKey:(NSString *)kCFProxyPortNumberKey]);
    NSLog(@"type=%@", [settings objectForKey:(NSString *)kCFProxyTypeKey]);
    
    if ([[settings objectForKey:(NSString *)kCFProxyTypeKey] isEqualToString:@"kCFProxyTypeNone"]){
        //没有设置代理
        return NO;
    }else{
        //设置代理了
        return YES;
    }
}

相关文章

网友评论

  • 庚鑫:mac的网络设置里,只要勾选了自动代理配置,无论是否打开代理软件,模拟器调试都会返回YES
    庚鑫:@嫌疑人zx 真机开启 威屁恩,会返回YES,确实可以检测出代理
    嫌疑人zx:哦,这样呀,我之前做的时候用的真机,主要是是防止用户通过代理拦截请求盗链。

本文标题:iOS开发 如何判断网络请求是否开启了代理

本文链接:https://www.haomeiwen.com/subject/cktazttx.html