AFNetworking是什么,主要特点介绍

2024年12月31日 建站教程

AFNetworkingIOS平台上最著名的第三方网络库。它基于NSURLSession,提供了更高层的网络请求封装,解决了NSURLSession一些复杂的API问题,让网络编程变得更加简单易用。

利用AFNetworking的GET请求的示例代码:

objc
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

[manager GET:@"https://lmcjl.com/get" 
  parameters:nil 
  progress:nil 
  success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
    NSLog(@"%@", responseObject);
  } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
    NSLog(@"Error: %@", error);
}];

利用AFNetworking上传图片的示例代码:

NSURL *url = [NSURL URLWithString:@"https://lmcjl.com/post"];
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:url];

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"png"];
NSURL *fileURL = [NSURL fileURLWithPath:filePath];

NSDictionary *parameters = @{@"name": @"AFNetworking"}; 
[manager POST:url.path parameters:parameters headers:nil constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
  [formData appendPartWithFileURL:fileURL name:@"file" fileName:@"test.png" mimeType:@"image/png" error:nil];
} progress:^(NSProgress * _Nonnull uploadProgress) {
  // 上传进度
} success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
  NSLog(@"Success: %@", responseObject);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
  NSLog(@"Error: %@", error);
}];

AFNetworking 的主要特点:

1、简单友好的 API,隐藏 NSURLSession 的复杂性。
2、上传、下载的进度监控跟踪。
3、对 JSON 的解析支持。
4、支持通知机制。
5、简单易用的 SSL pinning 和天然的 IPv6 支持。

本文链接:http://so.lmcjl.com/news/20440/

展开阅读全文
相关内容