AF网络封装

对AF进行网络请求的封装,可以只要导入参数就可以请求网络


网络请求的四步骤:

a、构建url

b、构造request

c、构造连接操作对象

d、设置返回数据解析方式


1、创建DataService 继承NSobject

导入AFNetworking框架

DataService.h文件


+(void)requestURL:(NSString*)urlStr httpMethod:(NSString*)method  params:(NSMutableDictionary*)params compeltionHandle:(void(^)(id result))block;


DataService.m文件


以微博为例

#define BASE_URL @"https://open.weibo.cn/2/"


+(void)requestURL:(NSString *)urlStr httpMethod:(NSString *)method params:(NSMutableDictionary *)params compeltionHandle:(void (^)(id))block{

    //构建url

    urlStr = [BASE_URL stringByAppendingString:urlStr];


    

    AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc]init];

    

    if ([method isEqualToString:@"GET"]) {

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

            

            block(responseObject);

            

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

            

            NSLog(@"错误");

            

        }];

    }else if([method isEqualToString:@"POST"]){

        

        BOOL isfile = NO;

        

        for (NSString  *key in params) {

            id value = params[key];

            if ([value isKindOfClass:[NSData class]]) {

                isfile = YES;

                break;

            }

        }

        

        if (!isfile) {

//普通文件

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

            

            block(responseObject);

            

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

            NSLog(@"错误");

 

        }];

        

        }else{

//图片文件

            [manager POST:@"https://upload.api.weibo.com/2/statuses/upload.json" parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {

                for (NSString  *key in params) {

                    id value = params[key];

                    if ([value isKindOfClass:[NSData class]]) {

                     [formData appendPartWithFileData:value

                    name:key

                    fileName:key

                                             mimeType:@"image/jpeg"];}

                    }

            } success:^(AFHTTPRequestOperation *operation, id responseObject) {

                

                block(responseObject);

                

                

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

                NSLog(@"错误");

            }];

        }

        

        

        

    }

    //解析数据

    manager.responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingMutableContainers];

    

    

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值