iOS 第三方框架- AFNetworking的基本使用
AFNetworking介绍
AFNetworking(发送网络请求)是目前Github里面最流行的OC第三方框架,这个框架十分强大,几乎封装了所有的有关网络的功能;
早期的AFN底层使用NSURLConnectionOperation实现的,iOS6.0以后苹果推出NSURLSession,后来逐步取代NSURLConnectionOperation.
目前的AFN版本已经完全摒弃了NSURLConnectionOperation,底层全部由NSURLSession来实现.
下面列出AFN框架的功能结构:
- NSURLSession
+ AFURLSessionManager
+ AFHTTPSessionManager(封装了常用的 HTTP 方法)
* GET
* POST
* UIKit + AFNetworking 分类
* NSProgress :利用KVO
- 半自动的序列化&反序列化的功能
+ AFURLRequestSerialization :请求的数据格式/默认是二进制的
+ AFURLResponseSerialization :响应的数据格式/默认是JSON格式
- 附加功能
+ 安全策略
* HTTPS
* AFSecurityPolicy
+ 网络检测
* 对苹果的网络连接检测做了一个封装
* AFNetworkReachabilityManager
AFNetworking使用
AFNetworking下载地址:
https://github.com/AFNetworking/AFNetworking
CocoaPods引入方式:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, "7.0"
target:testAFN do
pod 'AFNetworking','~> 3.1.0'
end
使用前请先导入AFN框架文件,并导入头文件
#import "AFNetworking.h"
GET方法
- (void)getAFN {
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
NSString *url = @"http://apis.juhe.cn/ip/ip2addr?ip=www.juhe.cn";
[manager GET:url parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {
// 请求进度
}
success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSLog(@"请求成功:%@",responseObject);
}
failure:^(NSURLSession