网上找的如下, 但是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。