基于AFNet手动封装网络解析单例
基于AFNet手动封装网络解析单例
默默沫沫shine 发表于2年前
基于AFNet手动封装网络解析单例
  • 发表于 2年前
  • 阅读 2
  • 收藏 0
  • 点赞 2
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: 网络解析

::::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

 

共有 人打赏支持
粉丝 0
博文 13
码字总数 4174
×
默默沫沫shine
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: