iOS開發總結之block回撥以AFN為基礎封裝的網路請求操作類
阿新 • • 發佈:2019-01-30
1.#warning封裝網路請求類的好處
/**
* 1.專案存在問題,太依賴第三方框架。
2.為什麼要封裝網路請求:以後AFN升級,方法名改了,或者AFN淘汰了,直接改工具類就好了。
3.好處:解耦,不依賴第三方框架
*/
2.程式碼
#import"TingHttpTool.h" #import "Reachability.h" #import "AFNetworking.h" #import "MUpdate.h" #import "Define.h" @implementation TingHttpTool + (void)get:(NSString *)url params:(NSDictionary *)params success:(void (^)(id json))success failure:(void (^)(NSError *error))failure { // 1.建立請求管理者 AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager]; mgr.requestSerializer.timeoutInterval = 10; // 2.傳送請求 [mgr GET:url parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) { if (success) { success(responseObject); } } failure:^(AFHTTPRequestOperation *operation, NSError *error) { if (failure) { failure(error); } }]; } + (void)post:(NSString *)url params:(NSDictionary *)params success:(void (^)(id json))success failure:(void (^)(NSError *error))failure { // 1.建立請求管理者 AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager]; mgr.requestSerializer.timeoutInterval = 10; // 2.傳送請求 [mgr POST:url parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) { if (success) { success(responseObject); } } failure:^(AFHTTPRequestOperation *operation, NSError *error) { if (failure) { failure(error); } }]; }
3.使用:
[TingHttpTool post:urladr params:dic success:^(id json) {
} failure:^(NSError *error) {
}];