AFNetworking 2.0 网络请求封装使用
1.下载 AFNetworking ,导入项目中。。github 下载地址:https://github.com/AFNetworking/AFNetworking
2. 创建 NetWorkTool 类,继承于 NSObject
2.1 在 NetWorkTool.h 中 导入AFNetworking.h 头文件
NetWorkTool.h 中
#import <Foundation/Foundation.h>
#import "AFNetworking.h"
@interface NetWorkTool : NSObject
/**
* 发送一个GET请求
*
* @param url 请求路径
* @param params 请求参数
* @param success 请求成功回调,代码块中执行成功要做的操作
* @param failure 请求失败回调,代码块中执行失败要做的操作
*/
+(void)GET:(NSString *)url
params:(NSDictionary *)params
success:(void(^)(id responseObject))success
failure:(void(^)(NSError *error))failure;
/**
* 发送一个POST请求
*
* @param url 请求路径
* @param params 请求参数
* @param success 请求成功回调,代码块中执行成功要做的操作
* @param failure 请求失败回调,代码块中执行失败要做的操作
*/
+(void)POST:(NSString *)url
params:(NSDictionary *)params
success:(void(^)(id responseObject))success
failure:(void(^)(NSError *error))failure;
@end
2.2 在 NetWorkTool.m 中 实现get 和 post 类方法
NetWorkTool.m 中
#import "NetWorkTool.h"
@implementation NetWorkTool
+(void)GET:(NSString *)url
params:(NSDictionary *)params
success:(void(^)(id responseObject))success
failure:(void(^)(NSError *error))failure
{
AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc]init];
//设置请求超时
manager.requestSerializer.timeoutInterval = 10.0f;
//声明返回的结果是json 类型
manager.responseSerializer = [AFJSONResponseSerializer serializer];
//声明请求的数据是json 类型
manager.requestSerializer = [AFJSONRequestSerializer serializer];
//请求接收不一致,替换text/html 或别的
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/html", nil];
[manager GET:url parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
//请求成功
success(responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
//错误信息
failure(error);
}];
}
+(void)POST:(NSString *)url
params:(NSDictionary *)params
success:(void (^)(id))success
failure:(void (^)(NSError *))failure
{
AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc]init];
//设置请求超时
manager.requestSerializer.timeoutInterval = 10.0f;
//声明返回的结果是json 类型
manager.responseSerializer = [AFJSONResponseSerializer serializer];
//声明请求的数据是json 类型
manager.requestSerializer = [AFJSONRequestSerializer serializer];
//请求接收不一致,替换text/html 或别的
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/html", nil];
//普通的post 请求
[manager POST:url parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
//请求成功
success(responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
//错误信息
failure(error);
}];
}
3. 调用
调用的时候,先导入 #import "NetWorkTool.h" 头文件
在需要做网络请求的地方直接调用
[NetWorkTool GET:@"资源链接" params:nil success:^(id responseObject) {
//请求成功后内容
} failure:^(NSError *error) {
//请求失败后内容
}];