//
// 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 stringByAddingPercentEsc
apesUsingEncoding: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
//
//
//
//
//
//
#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
//
//
//
//
//
//
//
#import "BaseNetManager.h"
static AFHTTPSessionManager *manager = nil;
@implementation BaseNetManager
+ (AFHTTPSessionManager *)sharedAFManager{
// 此处添加了 @"text/plain"
}
//http://cache.tuwan.com/app/?appid=1&class=heronews&mod=八卦&appid=1&appver=2.1
//方法:把path和参数拼接起来,把字符串中的中文转换为 百分号 形势,因为有的服务器不接收中文编码
+ (NSString *)percentPathWithPath:(NSString *)path params:(NSDictionary *)params{
//把字符串中的中文转为%号形势
}
+ (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{
}
+ (void)handleError:(NSError *)error{
}
@end