您的位置:首页 > 其它

AFNetworking的封装 项目使用

2017-05-13 18:11 507 查看
//

//  BaseNetManager.h

//  BaseProject

//

//  Created by zhangjian on 15/10/21.

//  Copyright © 2015年 zhangjian. All rights
reserved.

//

#import

#define kCompletionHandle completionHandle:(void(^)(id model,
NSError *error))completionHandle;

@interface BaseNetManager : NSObject

+ (id)GET:(NSString *)path parameters:(NSDictionary *)params
completionHandler:(void(^)(id responseObj, NSError
*error))complete;

+ (id)POST:(NSString *)path parameters:(NSDictionary *)params
completionHandler:(void(^)(id responseObj, NSError
*error))complete;

+ (NSString *)percentPathWithPath:(NSString *)path
params:(NSDictionary *)params;

@end

//

//  BaseNetManager.m

//  BaseProject

//

//  Created by zhangjian on 15/10/21.

//  Copyright © 2015年 zhangjian. All rights
reserved.

//

#import "BaseNetManager.h"

static AFHTTPSessionManager *manager = nil;

@implementation BaseNetManager

+ (AFHTTPSessionManager *)sharedAFManager{

    static
dispatch_once_t onceToken;

   
dispatch_once(&onceToken, ^{

       
manager = [AFHTTPSessionManager manager];

// 此处添加了 @"text/plain"   这样才能够解析
喜马拉雅 第二个请求

       
manager.responseSerializer.acceptableContentTypes = [NSSet
setWithObjects:@"text/html", @"application/json", @"text/json",
@"text/javascript", @"text/plain", nil];

    });

    return
manager;

}

//http://cache.tuwan.com/app/?appid=1&class=heronews&mod=八卦&appid=1&appver=2.1

//方法:把path和参数拼接起来,把字符串中的中文转换为 百分号 形势,因为有的服务器不接收中文编码

+ (NSString *)percentPathWithPath:(NSString *)path
params:(NSDictionary *)params{

   
NSMutableString *percentPath =[NSMutableString
stringWithString:path];

    NSArray
*keys = params.allKeys;

    NSInteger
count = keys.count;

    for (int i =
0; i < count; i++) {

       
if (i == 0) {

           
[percentPath appendFormat:@"?%@=%@", keys[i],
params[keys[i]]];

       
}else{

           
[percentPath appendFormat:@"&%@=%@", keys[i],
params[keys[i]]];

       
}

    }

//把字符串中的中文转为%号形势

    return
[percentPath
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

}

+ (id)GET:(NSString *)path parameters:(NSDictionary *)params
completionHandler:(void(^)(id responseObj, NSError
*error))complete{

    //打印网络请求,
DDLog  与  NSLog 功能一样

   
DDLogVerbose(@"Request Path: %@, params %@", path, params);

    return
[[self sharedAFManager] GET:path parameters:params
success:^void(NSURLSessionDataTask * task, id responseObject)
{

       
complete(responseObject, nil);

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

       
complete(nil, error);

    }];

}

+ (id)POST:(NSString *)path parameters:(NSDictionary *)params
completionHandler:(void(^)(id responseObj, NSError
*error))complete{

    return
[[self sharedAFManager] POST:path parameters:params
success:^void(NSURLSessionDataTask * task, id responseObject)
{

       
complete(responseObject, nil);

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

       
[self handleError:error];

       
complete(nil, error);

    }];

}

+ (void)handleError:(NSError *)error{

    [[self new]
showErrorMsg:error]; //弹出错误信息

}

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: