網絡請求的封裝

網絡封裝的緣由:網絡

開發者爲了開發方便,出現了大量的第三方的網絡請求,咱們除了在cocoapods中引入第三方的開源,同時還應該注意的一點是:若是第三方的網絡請求不更新了(好比ASI),或者網絡請求工具類在新版本出現了bug致使暫時沒法使用,咱們工程中存在大量的網絡請求,可能會致使咱們工程沒法運行,甚至致使工程須要從新走通,爲了這種解決這種突發情況的產生,咱們須要在網絡請求以前,進行簡單的封裝:工具

 這裏咱們以AFNetworking爲例post

HttpTool.h中:url

#import <Foundation/Foundation.h>開發

 

@interface HttpTool : NSObjectget

 

/**io

 *  發送一個GET請求import

 *cocoapods

 *  @author <#author#>bug

 *

 *  @since v<#version number#>

 *

 *  @param url     請求路徑

 *  @param params  請求參數

 *  @param success 請求成功後的回調(請將請求成功後想作的事情寫到這個block塊中)

 *  @param failure 請求失敗後的回調(請將請求失敗後想作的事情寫到這個block塊中)

 */

 

+ (void)get:(NSString *)url params:(NSDictionary *)params success:(void (^)(id respnseObj))success failure:(void(^)(NSError * error))failure;

 

/**

 *  發送一個POST請求

 *

 *  @author <#author#>

 *

 *  @since v<#version number#>

 *

 *  @param url     請求路徑

 *  @param params  請求參數

 *  @param success 請求成功後的回調(請將請求成功後想作的事情寫到這個block塊中)

 *  @param failure 請求失敗後的回調

 */

+ (void)post:(NSString *)url params:(NSDictionary *)params success:(void(^)(id respnseObj))success failure:(void(^)(NSError * error))failure;

@end

 

HttpTool.m中:

#import "HttpTool.h"

#import "AFNetworking.h"

@implementation HttpTool

 

+ (void)get:(NSString *)url params:(NSDictionary *)params success:(void (^)(id))success failure:(void (^)(NSError *))failure{

    //1.得到請求管理者

    AFHTTPRequestOperationManager * manager = [AFHTTPRequestOperationManager manager];

    //發送GET請求

    [manager 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))success failure:(void (^)(NSError *))failure{

    //1.得到請求管理者

    AFHTTPRequestOperationManager * manager = [AFHTTPRequestOperationManager manager];

    //發送POST請求

    [manager POST:url parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {

        if (success) {

            success(responseObject);

        }

    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {

        if (failure) {

            failure(error);

        }

    }];

}

@end

相關文章
相關標籤/搜索