1. 程式人生 > >iOS開發總結之block回撥以AFN為基礎封裝的網路請求操作類

iOS開發總結之block回撥以AFN為基礎封裝的網路請求操作類

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) {
        
        
    }];