AFN的簡單二次封裝

可用於登錄,註冊,修改密碼,得到手機驗證碼。html

首先導入AFN第三方庫網絡

 NetWorkTool.hatom

//  NetWorkTool.h
//  網絡請求
//
//  Created by 丁雲飛 on 15/11/8.
//  Copyright © 2015年 DLS. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "AFNetworking.h"
@protocol netWorkToolDelegate<NSObject>
@optional
/************************得到手機驗證碼*****************teg == 1*/
-(void)requestSucceedGetData:(NSDictionary *)dict;//成功得到手機驗證碼調用dict返回數據
-(void)requestFailure;//失敗時調用
/************************登錄*************************teg == 2*/
-(void)loginSucceedGetData:(NSDictionary *)dict;//登錄成功
-(void)loginFailure;//登錄失敗
/***********************註冊*************************teg == 3*/
-(void)registSucceedGetData:(NSDictionary *)dict;//註冊發送成功調用;
-(void)registFailure;//註冊失敗;
/***********************修改密碼**********************teg == 4*/
-(void)updataSeccretSucceedGetData:(NSDictionary *)dict;//修改請求發送成功過
-(void)updataSeccretFailure;//失敗
@end
@interface NetWorkTool : NSObject
{
AFHTTPRequestOperationManager *_managerr;
AFNetworkReachabilityManager *_afNetworkReach;
}
@property (nonatomic, strong)id<netWorkToolDelegate>delegate;
+ (NetWorkTool *)shareNetWorkJieXi;
/**
 *POST用於登錄,註冊,修改密碼
 */
#pragma mark -- 代理傳值
-(void)PostRequestWithUrl:(NSString *)urlStr WithDict:(NSDictionary *)dict WithInteger:(NSInteger)teg;
-(void)GETRequestWithUrl:(NSString *)urlStr WithDict:(NSDictionary *)dict;
#pragma mark -- block形式傳值
-(void)PostRequestWithurl:(NSString *)urlStr WithDict:(NSDictionary *)dict Success:(void(^)(id data))successd Failure:(void(^)(NSError *err))failure;
-(void)GetRequestWithurl:(NSString *)urlStr WlthDict:(NSDictionary *)dict Success:(void(^)(id data))successed Failure:(void(^)(NSError *err))failure;

@end

NetWorkTool.murl

 
//  Created by 丁雲飛 on 15/11/8.
//  Copyright © 2015年 DLS. All rights reserved.
//

#import "NetWorkTool.h"
#import "AFNetworking.h"
@interface NetWorkTool()

//@property (nonatomic, retain)AFHTTPRequestOperationManager *managerr;
@end
@implementation NetWorkTool
+ (NetWorkTool *)shareNetWorkJieXi{
    static NetWorkTool *sumbloo;
    static dispatch_once_t onceSumBToken;
    dispatch_once(&onceSumBToken, ^{
        sumbloo = [[NetWorkTool alloc] init];
    });
    return sumbloo;
}
- (id)init{
    self = [super init];
    if(self){
        _managerr = [AFHTTPRequestOperationManager manager];
        _managerr.requestSerializer = [AFHTTPRequestSerializer serializer];
        _managerr.responseSerializer = [AFHTTPResponseSerializer serializer];
        //managerr.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/plain",@"image/jpeg",@"text/html", nil];
        _afNetworkReach = [AFNetworkReachabilityManager sharedManager];
    }
    return self;
}
#pragma mark -- 代理傳值
/**
 *  POST請求
 *
 *  @param urlStr 接口地址
 *  @param dict   字典
 *  @param teg    區分不一樣請求
 */
-(void)PostRequestWithUrl:(NSString *)urlStr WithDict:(NSDictionary *)dict WithInteger:(NSInteger)teg{
  
    //開啓線程
    [self start];
    
    [_managerr POST:urlStr parameters:dict success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSDictionary *jiexiDic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
        NSDictionary *dict=[jiexiDic objectForKey:@"data"];
        switch (teg) {
            case 1:
                [self.delegate requestSucceedGetData:dict];//得到驗證碼成功
                break;
                case 2:
                [self.delegate loginSucceedGetData:dict];//登錄成功
                break;
                case 3:
                [self.delegate registSucceedGetData:dict];//註冊成功
                break;
                case 4:
                [self.delegate updataSeccretSucceedGetData:dict];//修改密碼成功
            default:
                break;
        }
        
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        
        switch (teg) {
            case 1:
                [self.delegate requestFailure];
                break;
            case 2:
                [self.delegate loginFailure];
                break;
            case 3:
                [self.delegate registFailure];
                break;
            case 4:
                [self.delegate updataSeccretFailure];
            default:
                break;
        }


    }];
    
}
/*
 *GET
 */
-(void)GETRequestWithUrl:(NSString *)urlStr WithDict :(NSDictionary *)dict{
    [_managerr GET:urlStr parameters:dict success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSDictionary *jiexiDic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
        NSDictionary *dict=[jiexiDic objectForKey:@"data"];
                [self.delegate requestSucceedGetData:dict];//得到驗證碼成功
        
//                [self.delegate loginSucceedGetData:dict];//登錄成功
//        
//                [self.delegate registSucceedGetData:dict];//註冊成功
//        
//                [self.delegate updataSeccretSucceedGetData:dict];//修改密碼成功
        

    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        
                [self.delegate requestFailure];
        
//                [self.delegate loginFailure];
//                [self.delegate registFailure];
//
//                [self.delegate updataSeccretFailure];
        

    }];
}
#pragma mark -- block傳值
//POST
-(void)PostRequestWithurl:(NSString *)urlStr WithDict:(NSDictionary *)dict Success:(void (^)(id data))successd Failure:(void (^)(NSError *))failure{
    [_managerr POST:urlStr parameters:dict success:^(AFHTTPRequestOperation *operation, id responseObject) {
        successd(responseObject);
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        failure(error);
    }];
}
//GET
-(void)GetRequestWithurl:(NSString *)urlStr WlthDict:(NSDictionary *)dict Success:(void (^)(id))successed Failure:(void (^)(NSError *))failure{
    [_managerr GET:urlStr parameters:dict success:^(AFHTTPRequestOperation *operation, id responseObject) {
        successed(responseObject);
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        failure(error);
    }];
}

-(void)start{
    
    if ([[_managerr operationQueue] isSuspended]) {
        [[_managerr operationQueue] setSuspended:NO];
    }
}



@end

 有不足支持請你們指出。spa

相關文章
相關標籤/搜索