OC网络学习14:AFNetworking如何添加代理

张建 lol

前言

  • 我们在iOS开发中无论是三方库 AFNetworking 还是原生的 NSURLSession 或 NSURLSession 来设置代理服务器,均需要配置 URLSessionConfiguration,属性 connectionProxyDictionary 是一个用于配置代理的字典。当你需要使用代理服务器连接到互联网时,你可以使用 connectionProxyDictionary 来指定代理服务器的配置选项。

该字典包含以下键值对:

HTTPEnable:BOOL 类型,表示是否开启 HTTP 代理。默认为 NO。
HTTPProxy:NSString 类型,表示 HTTP 代理服务器的地址。
HTTPPort:NSInteger 类型,表示 HTTP 代理服务器的端口号。
HTTPSEnable:BOOL 类型,表示是否开启 HTTPS 代理。默认为 NO。
HTTPSProxy:NSString 类型,表示 HTTPS 代理服务器的地址。
HTTPSPort:NSInteger 类型,表示 HTTPS 代理服务器的端口号。
FTPEnable:BOOL 类型,表示是否开启 FTP 代理。默认为 NO。
FTPProxy:NSString 类型,表示 FTP 代理服务器的地址。
FTPPort:NSInteger 类型,表示 FTP 代理服务器的端口号。
SOCKSEnable:BOOL 类型,表示是否开启 SOCKS 代理。默认为 NO。
SOCKSProxy:NSString 类型,表示 SOCKS 代理服务器的地址。
SOCKSPort:NSInteger 类型,表示 SOCKS 代理服务器的端口号。
ProxyAutoConfigEnable:BOOL 类型,表示是否开启代理自动配置(PAC)。默认为 NO。
ProxyAutoConfigURLString:NSString 类型,表示 PAC 配置文件的 URL。

AFNetworking 具体代码实现

举例使用 HTTP/HTTPS 代理

1
2
3
4
5
6
7
8
9
10
11
12
NSString * ip = @"127.0.0.1";
NSNumber * port = @443;
NSURLSessionConfiguration * config = [NSURLSessionConfiguration defaultSessionConfiguration];
config.connectionProxyDictionary = @{
@"HTTPEnable":@YES,
@"HTTPProxy":ip,
@"HTTPPort":port,
@"HTTPsEnable":@YES,
@"HTTPsProxy":ip,
@"HTTPsPort":port,
};
manager = [[AFHTTPSessionManager alloc] initWithSessionConfiguration:config];

NSURLSession 具体代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
NSURL * url = [NSURL URLWithString:@""];
NSMutableURLRequest * request = [NSMutableURLRequest requestWithURL:url];
request.HTTPMethod = @"GET";

NSString * ip = @"127.0.0.1";
NSNumber * port = @443;
NSURLSessionConfiguration * config = [NSURLSessionConfiguration defaultSessionConfiguration];
config.connectionProxyDictionary = @{
@"HTTPEnable":@YES,
@"HTTPProxy":ip,
@"HTTPPort":port,
@"HTTPsEnable":@YES,
@"HTTPsProxy":ip,
@"HTTPsPort":port,
};

NSURLSession *session = [NSURLSession sessionWithConfiguration:config delegate:self delegateQueue:[NSOperationQueue mainQueue]];
NSURLSessionTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
}];
[dataTask resume];
  • Post title:OC网络学习14:AFNetworking如何添加代理
  • Post author:张建
  • Create time:2023-07-15 13:43:22
  • Post link:https://redefine.ohevan.com/2023/07/15/OC网络/OC网络学习14:AFNetworking如何添加代理/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.
On this page
OC网络学习14:AFNetworking如何添加代理