ios开发之--使用AFNetWorking 3.1.0 ,简单的请求封装类
Posted 稻草人11223
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios开发之--使用AFNetWorking 3.1.0 ,简单的请求封装类相关的知识,希望对你有一定的参考价值。
从苹果系统自带的请求类,到ASIHttpRequest第三方请求类,再到AFNetWorking第三方请求类,目前只要牵扯到数据请求,基本上都是用AFN,所以,这里纯粹是记录下:
hRequestTools.h
#import <Foundation/Foundation.h> /** * 网络请求类型 */ typedef NS_ENUM(NSUInteger,HttpRequestType) { /** * get请求 */ HttpRequestTypeGet = 1, /** * post请求 */ HttpRequestTypePost = 2 }; @interface hRequestTools : NSObject /** * 发送网络请求 * * @param URLString 请求的网址字符串 * @param parameters 请求的参数 * @param type 请求的类型 * @param success 请求的结果 */ + (void)requestWithURLString:(NSString *)URLString parameters:(id)parameters type:(HttpRequestType)type success:(void (^)(id responseObject))success failure:(void (^)(NSError *error))failure;
hRequestTools.m
#pragma mark 封装的请求方法 + (void)requestWithURLString:(NSString *)URLString parameters:(id)parameters type:(HttpRequestType)type success:(void (^)(id responseObject))success failure:(void (^)(NSError *error))failure { AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.responseSerializer = [AFHTTPResponseSerializer serializer]; manager.requestSerializer.timeoutInterval = 30.0f; switch (type) { case HttpRequestTypeGet: { [manager GET:URLString parameters:parameters success:^(NSURLSessionDataTask *task, id responseObject) { if (success) { id jsons = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil]; success(jsons); } } failure:^(NSURLSessionDataTask *task, NSError *error) { if (failure) { failure(error); } }]; } break; case HttpRequestTypePost: { if (internets) {//有网络时 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.responseSerializer = [AFHTTPResponseSerializer serializer]; [manager POST:URLString parameters:parameters success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { if (success) { id jsons = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil]; success(jsons); } } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { if (failure) { failure(error); [HTools showTextOnlyHud:@"数据请求失败,请重试。" delay:2.0]; } }]; }else //无网络时 { [HTools showTextOnlyHud:@"请检查您的网络" delay:2.0]; NSError *error = nil; failure(error); } } break; default: break; } }
请求里面如果要加缓存的话,可以和YYCache这个第三方配合使用,
关于YYCache,可以推荐几个链接:http://www.jianshu.com/p/b8dcf6634fab
以上是关于ios开发之--使用AFNetWorking 3.1.0 ,简单的请求封装类的主要内容,如果未能解决你的问题,请参考以下文章