AFNetworking的封装 项目使用
来源:互联网 发布:js屏蔽手机运营商广告 编辑:程序博客网 时间:2024/06/06 10:39
//
// BaseNetManager.h
// BaseProject
//
// Created by zhangjian on 15/10/21.
// Copyright © 2015年 zhangjian. All rightsreserved.
//
#import
#define kCompletionHandle completionHandle:(void(^)(id model,NSError *error))completionHandle;
@interface BaseNetManager : NSObject
+ (id)GET:(NSString *)path parameters:(NSDictionary *)paramscompletionHandler:(void(^)(id responseObj, NSError*error))complete;
+ (id)POST:(NSString *)path parameters:(NSDictionary *)paramscompletionHandler:(void(^)(id responseObj, NSError*error))complete;
+ (NSString *)percentPathWithPath:(NSString *)pathparams:(NSDictionary *)params;
@end
//
// BaseNetManager.m
// BaseProject
//
// Created by zhangjian on 15/10/21.
// Copyright © 2015年 zhangjian. All rightsreserved.
//
#import "BaseNetManager.h"
static AFHTTPSessionManager *manager = nil;
@implementation BaseNetManager
+ (AFHTTPSessionManager *)sharedAFManager{
staticdispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
manager = [AFHTTPSessionManager manager];
// 此处添加了 @"text/plain" 这样才能够解析喜马拉雅 第二个请求
manager.responseSerializer.acceptableContentTypes = [NSSetsetWithObjects:@"text/html", @"application/json", @"text/json",@"text/javascript", @"text/plain", nil];
});
returnmanager;
}
//http://cache.tuwan.com/app/?appid=1&class=heronews&mod=八卦&appid=1&appver=2.1
//方法:把path和参数拼接起来,把字符串中的中文转换为 百分号 形势,因为有的服务器不接收中文编码
+ (NSString *)percentPathWithPath:(NSString *)pathparams:(NSDictionary *)params{
NSMutableString *percentPath =[NSMutableStringstringWithString:path];
NSArray*keys = params.allKeys;
NSIntegercount = 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[percentPathstringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
}
+ (id)GET:(NSString *)path parameters:(NSDictionary *)paramscompletionHandler:(void(^)(id responseObj, NSError*error))complete{
//打印网络请求,DDLog 与 NSLog 功能一样
DDLogVerbose(@"Request Path: %@, params %@", path, params);
return[[self sharedAFManager] GET:path parameters:paramssuccess:^void(NSURLSessionDataTask * task, id responseObject){
complete(responseObject, nil);
}failure:^void(NSURLSessionDataTask * task, NSError * error) {
complete(nil, error);
}];
}
+ (id)POST:(NSString *)path parameters:(NSDictionary *)paramscompletionHandler:(void(^)(id responseObj, NSError*error))complete{
return[[self sharedAFManager] POST:path parameters:paramssuccess:^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 *)paramscompletionHandler:(void(^)(id responseObj, NSError*error))complete;
+ (id)POST:(NSString *)path parameters:(NSDictionary *)paramscompletionHandler:(void(^)(id responseObj, NSError*error))complete;
+ (NSString *)percentPathWithPath:(NSString *)pathparams:(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 *)pathparams:(NSDictionary *)params{
//把字符串中的中文转为%号形势
}
+ (id)GET:(NSString *)path parameters:(NSDictionary *)paramscompletionHandler:(void(^)(id responseObj, NSError*error))complete{
}
+ (id)POST:(NSString *)path parameters:(NSDictionary *)paramscompletionHandler:(void(^)(id responseObj, NSError*error))complete{
}
+ (void)handleError:(NSError *)error{
}
@end
0 0
- AFNetworking的封装 项目使用
- AFNetworking的封装使用
- AFNetworking 二次封装
- AFNetWorking使用及二次封装的好处
- AFNetWorking封装使用
- AFNetWorking的二次封装
- AFNetWorking的二次封装
- AFNetworking 的封装 Swift
- AFNetworking的二次封装
- AFNetworking的简单封装
- 小谈AFNetworking的项目使用
- 基于AFNetWorking的网络封装
- 对AFNetworking的简单封装
- 对AFNetworking的简单封装
- iOS AFNETWorkIng的封装类
- AFNetWorking 封装
- 封装AFNetWorking
- AFNetworking封装
- AFNetworking 二次封装
- AFNetworking3.1 基本使用
- 关于jsonp的一些事!!!
- 扩大Button按钮的点击区域
- 自定义弹出窗AlertView
- AFNetworking的封装 项目使用
- 常用的PCH文件
- ios10 新技能Get,必看
- Playground -swift01基础学习
- iOS设备类型
- 以下面试题来自于百度、小米、乐视…
- iOS开发之2016年9月App上架App&nbs…
- iOS_UITextFiled控件详解
- 九宫格