基于AFNet手动封装网络解析单例

::::loadingView是我根据公司需要 自己封装的一个动画文件。只需要调用 start  stop就可以实现loadingView的加载和消失。略过。

基于AFNetWorking的封装。单例模式,在工程中调用更加方便,不用每次请求创建一个manager。

 

.h文件

#import <Foundation/Foundation.h>

#import "AFNetworking.h"

typedef void(^SuccessType)(id responsData);

typedef void(^Falied)     (NSError *error);

 

@interface NETAnalysisTool : NSObject

@property(nonatomic,copy)AFHTTPSessionManager *manager;

 

+(instancetype)sharedInstance;

 

-(void)POST:(NSString *)url parameters:(NSDictionary *)dict RegisterSuccess:(SuccessType)

                                                                            successBlock   Falied:(Falied)faliedBlock;

 

-(void)GET:(NSString *)url Success:(SuccessType)successBlock

                                 Falied:(Falied)faliedBlock;

 

.m文件

#import "NETAnalysisTool.h"

#import "LoadingView.h"

 

 

@interface NETAnalysisTool ()

 

@end

@implementation NETAnalysisTool

 

+(instancetype)sharedInstance

{

    static NETAnalysisTool *s_tance = nil;

    static dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{

        s_tance = [[NETAnalysisTool alloc]init];

       

    });

    return s_tance;

}

-(id)init

{

    

    if (self = [super init]) {

        

        _manager = [[AFHTTPSessionManager alloc]init];

        

    }

    return self;

}

 

-(void)POST:(NSString *)url parameters:(NSDictionary *)dict RegisterSuccess:(SuccessType)successBlock

                                                                           Falied:(Falied)faliedBlock

{

    [LoadingView start];

    _manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html",@"text/xml",@"image/gif" ,nil];

    [_manager.requestSerializer willChangeValueForKey:@"timeoutInterval"];

    _manager.requestSerializer.timeoutInterval = 10.f;

    [_manager.requestSerializer didChangeValueForKey:@"timeoutInterval"];

    [_manager POST:url parameters:dict success:^(NSURLSessionDataTask *task, id responseObject) {

        [LoadingView stop];

        if (successBlock) {

            

            successBlock(responseObject);

        }

        

    } failure:^(NSURLSessionDataTask *task, NSError *error) {

        

        [LoadingView stop];

        if (faliedBlock) {

            

            faliedBlock(error);

            

        }

        

    }];

}

 

 

-(void)GET:(NSString *)url Success:(SuccessType)successBlock

                                  Falied:(Falied)faliedBlock

{

    [LoadingView start];

    _manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html",@"text/xml",@"image/gif" ,nil];

    [_manager.requestSerializer willChangeValueForKey:@"timeoutInterval"];

    _manager.requestSerializer.timeoutInterval = 10.f;

    [_manager.requestSerializer didChangeValueForKey:@"timeoutInterval"];

    [_manager GET:url parameters:nil success:^(NSURLSessionDataTask *task, id responseObject) {

        if (successBlock) {

            [LoadingView stop];

            successBlock(responseObject);

            

        }

        

    } failure:^(NSURLSessionDataTask *task, NSError *error) {

       

        [LoadingView stop];

        if (faliedBlock) {

            

            faliedBlock(error);

        }

        

    }];

    

}

@end

 

转载于:https://my.oschina.net/duanzishou/blog/679803

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值