AFNetworking的封装 项目使用

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值