网上找的如下, 但是kCFStreamPropertyHTTPProxyHost
等常量已经被标为 Deprecated,会有警告
config.connectionProxyDictionary = @
{
@"HTTPEnable":@YES,
(id)kCFStreamPropertyHTTPProxyHost:@"127.0.0.1",
(id)kCFStreamPropertyHTTPProxyPort:@80,
@"HTTPSEnable":@YES,
(id)kCFStreamPropertyHTTPSProxyHost:@"127.0.0.1",
(id)kCFStreamPropertyHTTPSProxyPort:@80
};
写成字符串常量,也是可以的, 并且不会有警告
NSString *ip = @"122.0.0.1";
NSNumber *proxyPort = [NSNumber numberWithInt:8000];
NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
config.connectionProxyDictionary = @
{
@"HTTPEnable":@YES,
@"HTTPProxy" : ip,
@"HTTPPort" : proxyPort,
@"HTTPSEnable":@YES,
@"HTTPSProxy": ip,
@"HTTPSPort": proxyPort
};
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:nil sessionConfiguration:config];
对于新版的 iOS 和 macOS,CocoaTouch 层级负责通讯的类是 NSURLSession
,如果需要通过代理访问网络,是需要指定其 configuration
属性,configuration
的类型是 NSURLSessionConfiguration
。
将 NSURLSessionConfiguration
的 connectionProxyDictionary
属性指定为相应的 Dictionary。