在iOS中以编程方式配置代理设置
如何在iOS中以编程方式在在iOS中以编程方式配置代理设置,ios,objective-c,ios9,nsurlsession,Ios,Objective C,Ios9,Nsurlsession,如何在iOS中以编程方式在NSURLSession中配置代理设置?我遵循了这一点 但似乎kcfstreampropertyhttproxyhost,kcfstreampropertyhttproxyport已从iOS 9弃用。那么,以编程方式创建代理的方法是什么呢?苹果开发者论坛上有两条关于这个问题的线索 表示我们应该使用KCFnetworkProxiesHttpPenable、kCFNetworkProxiesHTTPProxy和kCFNetworkProxiesHTTPPort键,而不是不推
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(配置:配置)
最后两种配置都可以使用。您找到解决方案了吗?我也很感兴趣。我似乎在搜索引擎中找不到任何东西,但我可能正在头脑风暴所有错误的关键字。