- (BOOL)getProxyStatus:(NSString *)url {
NSDictionary *proxySettings = (__bridge NSDictionary *)CFNetworkCopySystemProxySettings();
NSArray *proxies = (__bridge NSArray *)(CFNetworkCopyProxiesForURL((__bridge CFURLRef _Nonnull)([NSURL URLWithString:url]),(__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;
}
}
在网络请求开始之前进行判断
BOOL flag = [self getProxyStatus:url];
if (flag) {
[SVProgressHUD showErrorWithStatus:@"网络异常"];
return;
}
这段代码用于检查指定URL的网络代理状态。首先获取系统代理设置,然后通过CFNetworkCopyProxiesForURL获取适用于该URL的代理配置。如果检测到代理类型为'kCFProxyTypeNone',则表明没有设置代理,返回NO;否则表示设置了代理,返回YES。在网络请求前,此功能可以用于判断是否需要通过代理进行连接。
4022

被折叠的 条评论
为什么被折叠?



