- 將AFN的get請求和post請求封裝在自己寫的一個類
XZQHttpTool
里面。
- 這樣需求變更的時候,只需要改一處就可以了。
- 最后使用的時候調用就可以了。
#pragmark -mark AFN的使用
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)even
{
// 寫參數
NSDictionary *paramDict=@{
@"username":@"520it",
@"pwd":@"520it",
@"type":@"JSON"
};
[XZQHttpTool get:@"http://120.25.226.186:32812/login" params:paramDict success:^(id responseObj) {
NSLog(@"%@-%@",[responseObj class],responseObj);
} failure:^(NSError *error) {
NSLog(@"請求失敗--%@",error);
}];
}
附:XZQHttpTool類
//
// XZQHttpTool.h
// AFN管理工具
//
// Created by xzq on 2018/4/22.
// Copyright ? 2018年 xzq. All rights reserved.
// 網絡請求工具類,負責整個項目中所有的Http網絡請求
#import <Foundation/Foundation.h>
#import <AFNetworking.h>
@interface XZQHttpTool : NSObject
/**
* 發送一個GET請求
*
* @param url 請求路徑
* @param params 請求參數
* @param success 請求成功后的回調(請將請求成功后想做的事情寫到這個block中)
* @param failure 請求失敗后的回調(請將請求失敗后想做的事情寫到這個block中)
*/
+ (void)get:(NSString *)url params:(NSDictionary *)params success:(void(^)(id responseObj))success failure:(void(^)(NSError *error))failure;
/**
* 發送一個POST請求
*
* @param url 請求路徑
* @param params 請求參數
* @param success 請求成功后的回調(請將請求成功后想做的事情寫到這個block中)
* @param failure 請求失敗后的回調(請將請求失敗后想做的事情寫到這個block中)
*/
+ (NSURLSessionDataTask *)post:(NSString *)url params:(NSDictionary *)params success:(void(^)(id responseObj))success failure:(void(^)(NSError *error))failure;
@end
//
// XZQHttpTool.m
// AFN管理工具
//
// Created by xzq on 2018/4/22.
// Copyright ? 2018年 xzq. All rights reserved.
// 網絡請求工具類,負責整個項目中所有的Http網絡請求
#import "XZQHttpTool.h"
@implementation XZQHttpTool
+(void)get:(NSString *)url params:(NSDictionary *)params success:(void (^)(id))success failure:(void (^)(NSError *))failure
{
//1.獲得請求管理者
AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];
//2.發送Get請求
[mgr GET:url parameters:params progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
if (success) {
success(responseObject);
}
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
if (failure) {
failure(error);
}
}];
}
+(NSURLSessionDataTask *)post:(NSString *)url params:(NSDictionary *)params success:(void (^)(id))success failure:(void (^)(NSError *))failure
{
//1.獲得請求管理者
AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];
NSURLSessionDataTask *dataTask = [mgr POST:url parameters:params progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
if (success) {
success(responseObject);
}
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
if (failure) {
failure(error);
}
}];
return dataTask;
}
@end