码迷,mamicode.com
首页 > 其他好文 > 详细

网络请求的封装

时间:2015-02-15 20:32:50      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

网络封装的原因:

开发者为了开发方便,出现了大量的第三方的网络请求,我们除了在cocoapods中引入第三方的开源,同时还应该注意的一点是:如果第三方的网络请求不更新了(比如ASI),或者网络请求工具类在新版本出现了bug导致暂时无法使用,我们工程中存在大量的网络请求,可能会导致我们工程无法运行,甚至导致工程需要重新走通,为了这种解决这种突发状况的产生,我们需要在网络请求之前,进行简单的封装:

 这里我们以AFNetworking为例

HttpTool.h中:

#import <Foundation/Foundation.h>

 

@interface HttpTool : NSObject

 

/**

 *  发送一个GET请求

 *

 *  @author <#author#>

 *

 *  @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

 

网络请求的封装

标签:

原文地址:http://www.cnblogs.com/zhouyantongiOSDev/p/4293410.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!