【发布时间】:2015-03-19 15:01:48
【问题描述】:
这是我的步骤
网络现在可用于 Wifi。
打开系统 WiFi 设置
选择手动代理设置
配置无效参数
打开浏览器并确保互联网不可用
启动应用程序并确保没有互联网
有什么方法可以从应用程序内部以编程方式绕过这些代理设置,以便连接到互联网?
【问题讨论】:
标签: ios objective-c ipad swift network-programming
这是我的步骤
网络现在可用于 Wifi。
打开系统 WiFi 设置
选择手动代理设置
配置无效参数
打开浏览器并确保互联网不可用
启动应用程序并确保没有互联网
有什么方法可以从应用程序内部以编程方式绕过这些代理设置,以便连接到互联网?
【问题讨论】:
标签: ios objective-c ipad swift network-programming
您可能想要使用CFHTTPStream,默认情况下它不会自动使用代理设置。
如需了解更多信息,请阅读CFNetwork Programming Guide。
【讨论】:
在2018年遇到你的问题,在文档中挖掘了一段时间发现在代理字典中设置的关键kCFStreamPropertyProxyLocalBypass。 仅供参考:https://developer.apple.com/documentation/cfnetwork/kcfstreampropertyproxylocalbypass
Objective-C
NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];
NSDictionary *proxyDict = @{
@"HTTPEnable" : [NSNumber numberWithInt:1],
(NSString *)kCFStreamPropertyProxyLocalBypass : @"10.26.*.*",
@"HTTPSEnable" : [NSNumber numberWithInt:1],
(NSString *)kCFStreamPropertyProxyLocalBypass : @"10.26.*.*"
};
sessionConfig.connectionProxyDictionary = proxyDict;
斯威夫特
let sessionConfig = URLSessionConfiguration.default
var proxyDict = [AnyHashable : Any]()
proxyDict[kCFStreamPropertyProxyLocalBypass as String] = "10.26.*.*"
sessionConfig.connectionProxyDictionary = proxyDict
let session = URLSession.init(configuration: config, delegate: nil, delegateQueue: OperationQueue.current)
【讨论】: