在iOS中以编程方式配置代理设置

在iOS中以编程方式配置代理设置,ios,objective-c,ios9,nsurlsession,Ios,Objective C,Ios9,Nsurlsession,如何在iOS中以编程方式在NSURLSession中配置代理设置?我遵循了这一点 但似乎kcfstreampropertyhttproxyhost,kcfstreampropertyhttproxyport已从iOS 9弃用。那么,以编程方式创建代理的方法是什么呢?苹果开发者论坛上有两条关于这个问题的线索 表示我们应该使用KCFnetworkProxiesHttpPenable、kCFNetworkProxiesHTTPProxy和kCFNetworkProxiesHTTPPort键,而不是不推

如何在iOS中以编程方式在
NSURLSession
中配置代理设置?我遵循了这一点


但似乎
kcfstreampropertyhttproxyhost
kcfstreampropertyhttproxyport
已从
iOS 9
弃用。那么,以编程方式创建代理的方法是什么呢?

苹果开发者论坛上有两条关于这个问题的线索

表示我们应该使用
KCFnetworkProxiesHttpPenable
kCFNetworkProxiesHTTPProxy
kCFNetworkProxiesHTTPPort
键,而不是不推荐使用的
kCFStreamPropertyHTTPProxyHost
kCFStreamPropertyHTTPProxyPort
。但这只修复了有关HTTP代理设置的警告

关于HTTPS代理密钥,有以下声明:

请提交一个包含详细信息的bug,并继续使用不推荐的 现在的钥匙

在线程的底部,这是:

AFAIK您不需要匹配的'HTTPS'常量-,它们是OSX 只有-因为iOS从一个推断另一个

但显然这不起作用

在中,有一个响应使用常量字符串来代替这些键,这些字符串分别是HTTPS大小写的
“HTTPSEnable”
“HTTPSProxy”
“HTTPSPort”

因此,要么是因为HTTPS代理密钥不适用于iOS平台,要么是因为新密钥没有按照HTTPS代理的预期工作

据我所知,如果使用HTTP代理,您肯定可以避免警告,如:

NSURLSessionConfiguration*configuration=NSURLSessionConfiguration.defaultSessionConfiguration;
NSDictionary*connectionProxyDictionary=@{
(NSString*)kCFNetworkProxiesHTTPEnable:[NSNumber numberWithInt:1],
(NSString*)kCFNetworkProxiesHTTPProxy:@“127.0.0.1”,
(NSString*)KCFnetworkProxiesHttport:[NSNumber Number Withint:8888]
};
[配置集connectionProxyDictionary:connectionProxyDictionary];
NSURLSession*session=[NSURLSession sessionWithConfiguration:configuration];
let configuration=URLSessionConfiguration.default
configuration.connectionProxyDictionary=[
kCFNetworkProxiesHTTPEnable:正确,
kCFNetworkProxiesHTTPProxy:“127.0.0.1”,
KCF网络代理支持端口:8888
]
let session=URLSession(配置:配置)
如果使用HTTPS代理,则可能必须使用不推荐使用的密钥:

NSURLSessionConfiguration*configuration=NSURLSessionConfiguration.defaultSessionConfiguration;
NSDictionary*connectionProxyDictionary=@{
@“HTTPSEnable”:[NSNumber numberwhithint:1],
(NSString*)KCFStreamPropertyHttpProxyHost:@“127.0.0.1”,
(NSString*)KCFStreamPropertyHttpProxyPort:[NSNumber numberWithInt:8888]
};
[配置集connectionProxyDictionary:connectionProxyDictionary];
NSURLSession*session=[NSURLSession sessionWithConfiguration:configuration];
let configuration=URLSessionConfiguration.default
configuration.connectionProxyDictionary=[
“HTTPSEnable”:正确,
KCFStreamPropertyHttpProxyHost:“127.0.0.1”,
KCFStreamPropertyHttpProxyPort:8888
]
let session=URLSession(配置:配置)
或者使用各自的
字符串
常量:

NSURLSessionConfiguration*configuration=NSURLSessionConfiguration.defaultSessionConfiguration;
NSDictionary*connectionProxyDictionary=@{
@“HTTPSEnable”:[NSNumber numberwhithint:1],
@“HTTPSProxy”:@“127.0.0.1”,
@“HTTPSPort”:[NSNumber-numberwhithint:8888]
};
[配置集connectionProxyDictionary:connectionProxyDictionary];
NSURLSession*session=[NSURLSession sessionWithConfiguration:configuration];
let configuration=URLSessionConfiguration.default
configuration.connectionProxyDictionary=[
“HTTPSEnable”:正确,
“HTTPSProxy”:“127.0.0.1”,
“HTTPSPort”:8888
]
let session=URLSession(配置:配置)

最后两种配置都可以使用。

您找到解决方案了吗?我也很感兴趣。我似乎在搜索引擎中找不到任何东西,但我可能正在头脑风暴所有错误的关键字。