时下流行的AFNNetworking 3.0框架使用简单,方便。对其进行第二次封装,使用起来更简单方便
#import
<Foundation/Foundation.h>
@interface AFNManger :NSObject
+(AFNManger *)shareAFNManger;
/** @brief GET请求 */
- (void)GET:(NSString
*)URLString parameters:(id)parameters success:(void
(^)(id data))success failure:(void
(^)(NSError *error)) failure;
/** @brief POST请求 */
- (void)POST:(NSString
*)URLString parameters:(id)parameters success:(void
(^)(id data))success failure:(void
(^)(NSError *error)) failure;
@end
#import
"AFNManger.h"
@implementation AFNManger
staticAFNManger
*afnManger =nil;
//单例
+ (AFNManger *)shareAFNManger
{
staticdispatch_once_t
onceToken;
dispatch_once(&onceToken, ^{
if (afnManger
== nil) {
afnManger = [[selfalloc]init];
}
});
returnafnManger;
}
/**
*
获取AFHTTPSessionManager
*/
- (AFHTTPSessionManager *)getHttpSessionManager
{
//创建网络请求管理对象
AFHTTPSessionManager *manager = [AFHTTPSessionManagermanager];
//申明返回的结果是json类型
manager.responseSerializer = [AFJSONResponseSerializerserializer];
//申明请求的数据是json类型
manager.requestSerializer = [AFJSONRequestSerializerserializer];
//如果报接受类型不一致请替换一致text/html或别的
manager.responseSerializer.acceptableContentTypes
= [NSSetsetWithObjects:@"application/json",@"text/json",@"text/javascript",@"text/html",@"text/plain",nil];
return manager;
}
/** @brief GET请求 */
- (void)GET:(NSString
*)URLString parameters:(id)parameters success:(void
(^)(id data))success failure:(void
(^)(NSError *error)) failure{
//创建网络请求管理对象
AFHTTPSessionManager *manager = [selfgetHttpSessionManager];
//发送网络请求(请求方式为GET)
[managerGET:URLStringparameters:parametersprogress:^(NSProgress
* _Nonnull downloadProgress) {
}
success:^(NSURLSessionDataTask
* _Nonnull task,id _Nullable
responseObject) {
if (success) {
success(responseObject);
}
}
failure:^(NSURLSessionDataTask
* _Nullable task,NSError
*_Nonnull error) {
if (failure) {
failure(error);
}
}];
}
- (void)POST:(NSString
*)URLString parameters:(id)parameters success:(void
(^)(id data))success failure:(void
(^)(NSError *error)) failure{
//创建网络请求管理对象
AFHTTPSessionManager *manager = [selfgetHttpSessionManager];
//发送网络请求(请求方式为POST)
[managerPOST:URLStringparameters:parametersprogress:^(NSProgress
* _Nonnull uploadProgress) {
}
success:^(NSURLSessionDataTask
* _Nonnull task,id _Nullable
responseObject) {
if (success) {
success(responseObject);
}
}
failure:^(NSURLSessionDataTask
* _Nullable task,NSError
*_Nonnull error) {
if (failure) {
failure(error);
}
}];
}
@end