-(void)get
{
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
[manager.securityPolicy setAllowInvalidCertificates:YES];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html", nil];
[manager GET:URL parameters:@{@"getKey_1":@"getValue1",@"getKey_2":@"getValue2"} progress:^(NSProgress * _Nonnull downloadProgress) {
NSLog(@"is begin?");
}success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSLog(@"这里打印请求成功要做的事 %@",responseObject);
}failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"%@",error); //这里打印错误信息
}];
}
-(void)post
{
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html", nil];
NSDictionary *parameters = @{@"postKey_1":@"postValue_1",@"postKey_2":@"postValue_2"};
[manager POST:URL parameters:parameters progress:^(NSProgress * _Nonnull uploadProgress) {
NSLog(@"uploadProgress- - - %@ %lf",uploadProgress,uploadProgress.fractionCompleted);
NSLog(@"%@ %lld",@"begin?",uploadProgress.completedUnitCount/uploadProgress.totalUnitCount);
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSLog(@"%@",responseObject);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"%@",error);
}];
}
- (void)upload
{
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html", nil];
NSDictionary *parameters = @{@"uploadKey_1":@"uploadValue_1",@"uploadKey_2":@"uploadValue_2"};
[manager POST:URL parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
UIImage *iamge = [UIImage imageNamed:@"IMG_0022.JPG"];
NSData *data = UIImagePNGRepresentation(iamge);
[formData appendPartWithFileData:data name:@"file" fileName:@"IMG_0022.JPG" mimeType:@"image/png"];
} progress:^(NSProgress * _Nonnull uploadProgress) {
NSLog(@"进度- - -%lf",uploadProgress.fractionCompleted);
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSLog(@"请求成功:%@",responseObject);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"请求失败:%@",error);
}];
}
二次封装:
// // AFNetworkingOperate.h // MuslimFriendProject // // Created by skyzizhu on 2016/11/18. // Copyright © 2016年 skyzizhu. All rights reserved. // #import <Foundation/Foundation.h> #import "AFNetworking.h" @interface AFNetworkingOperate : NSObject //无httpheader get请求 +(void)GetRequestWithUrl:(NSString *)url atParams:(NSDictionary *)params atProgress:(void(^)(NSProgress *requestProgress))progress atSucceed:(void(^)(NSURLSessionDataTask *task, id responseObject))succeed atFailure:(void(^)(NSURLSessionDataTask *task, NSError *error))failure; //有httpheader get请求 +(void)GetRequestAddHttpHeaderWithHttpHeader:(NSDictionary *)httpHeader atContentType:(NSString *)contentType atUrl:(NSString *)url atParams:(NSDictionary *)params atProgress:(void(^)(NSProgress *requestProgress))progress atSucceed:(void(^)(NSURLSessionDataTask *task, id responseObject))succeed atFailure:(void(^)(NSURLSessionDataTask *task, NSError *error))failure; //无httpheader POST请求 +(void)PostRequestWithUrl:(NSString *)url atParams:(NSDictionary *)params atProgress:(void(^)(NSProgress *requestProgress))progress atSucceed:(void(^)(NSURLSessionDataTask *task, id responseObject))succeed atFailure:(void(^)(NSURLSessionDataTask *task, NSError *error))failure; //有httpheader POST请求 +(void)PostRequestAddHttpHeaderWithHttpHeader:(NSDictionary *)httpHeader atContentType:(NSString *)contentType atUrl:(NSString *)url atParams:(NSDictionary *)params atProgress:(void(^)(NSProgress *requestProgress))progress atSucceed:(void(^)(NSURLSessionDataTask *task, id responseObject))succeed atFailure:(void(^)(NSURLSessionDataTask *task, NSError *error))failure; //无httpheader upload file请求,主要为图片上传 +(void)UploadFileWithUrl:(NSString *)url atParams:(NSDictionary *)params atDatas:(NSArray *)datas atFileKeys:(NSArray *)fileKeys atProgress:(void(^)(NSProgress *requestProgress))progress atSucceed:(void(^)(NSURLSessionDataTask *task, id responseObject))succeed atFailure:(void(^)(NSURLSessionDataTask *task, NSError *error))failure; //有httpHeader upload 上传文件 +(void)UploadFileAddConstraintWithHttpHeader:(NSDictionary *)httpHeader atUrl:(NSString *)url atParams:(NSDictionary *)params atDatas:(NSArray *)datas atFileKeys:(NSArray *)fileKeys atMimeType:(NSString *)mimeType atFileNames:(NSArray *)fileNames atContentType:(NSString *)contentType atProgress:(void(^)(NSProgress *requestProgress))progress atSucceed:(void(^)(NSURLSessionDataTask *task, id responseObject))succeed atFailure:(void(^)(NSURLSessionDataTask *task, NSError *error))failure; +(void)PostRequestWithUrl:(NSString *)url atParams:(NSDictionary *)params atBeginHandle:(void (^)())beginHandle atSucceed:(void (^)(NSURLSessionDataTask *task, id responseObject))succeed atFailure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure; @end
//
// AFNetworkingOperate.m
// MuslimFriendProject
//
// Created by skyzizhu on 2016/11/18.
// Copyright © 2016年 skyzizhu. All rights reserved.
//
#import "AFNetworkingOperate.h"
static NSString *DefaultFileSuffix = @".png";
static NSString *DefaultMimeType = @"image/jpeg";
@implementation AFNetworkingOperate
//初始化AFHTTPSessionManager
+(AFHTTPSessionManager *)initAFnetworkingManagerWithContentType:(NSString *)contentType atHttpHeaderField:(NSDictionary *)headerField
{
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
[manager.securityPolicy setAllowInvalidCertificates:YES];
if(contentType == nil){
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html", nil];
}else{
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:contentType];
}
if(headerField == nil){
//public operate by httpheader
}else{
for (NSString *key in headerField) {
[manager.requestSerializer setValue:[headerField valueForKey:key] forHTTPHeaderField:key];
}
}
return manager;
}
//无httpheader get请求
+(void)GetRequestWithUrl:(NSString *)url atParams:(NSDictionary *)params atProgress:(void(^)(NSProgress *requestProgress))progress atSucceed:(void(^)(NSURLSessionDataTask *task, id responseObject))succeed atFailure:(void(^)(NSURLSessionDataTask *task, NSError *error))failure
{
AFHTTPSessionManager *manager = [self initAFnetworkingManagerWithContentType:nil atHttpHeaderField:nil];
[manager GET:[self encodeUrl:url] parameters:params progress:^(NSProgress * _Nonnull downloadProgress) {
progress(downloadProgress);
}success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
succeed(task,responseObject);
}failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
failure(task,error);
}];
}
//有httpheader get请求
+(void)GetRequestAddHttpHeaderWithHttpHeader:(NSDictionary *)httpHeader atContentType:(NSString *)contentType atUrl:(NSString *)url atParams:(NSDictionary *)params atProgress:(void(^)(NSProgress *requestProgress))progress atSucceed:(void(^)(NSURLSessionDataTask *task, id responseObject))succeed atFailure:(void(^)(NSURLSessionDataTask *task, NSError *error))failure
{
AFHTTPSessionManager *manager = [self initAFnetworkingManagerWithContentType:contentType atHttpHeaderField:httpHeader];
[manager GET:[self encodeUrl:url] parameters:params progress:^(NSProgress * _Nonnull downloadProgress) {
progress(downloadProgress);
}success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
succeed(task,responseObject);
}failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
failure(task,error);
}];
}
//无httpheader POST请求
+(void)PostRequestWithUrl:(NSString *)url atParams:(NSDictionary *)params atProgress:(void(^)(NSProgress *requestProgress))progress atSucceed:(void(^)(NSURLSessionDataTask *task, id responseObject))succeed atFailure:(void(^)(NSURLSessionDataTask *task, NSError *error))failure
{
AFHTTPSessionManager *manager = [self initAFnetworkingManagerWithContentType:nil atHttpHeaderField:nil];
[manager POST:[self encodeUrl:url] parameters:params progress:^(NSProgress * _Nonnull uploadProgress) {
progress(uploadProgress);
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
succeed(task,responseObject);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
failure(task,error);
}];
}
//有httpheader POST请求
+(void)PostRequestAddHttpHeaderWithHttpHeader:(NSDictionary *)httpHeader atContentType:(NSString *)contentType atUrl:(NSString *)url atParams:(NSDictionary *)params atProgress:(void(^)(NSProgress *requestProgress))progress atSucceed:(void(^)(NSURLSessionDataTask *task, id responseObject))succeed atFailure:(void(^)(NSURLSessionDataTask *task, NSError *error))failure
{
AFHTTPSessionManager *manager = [self initAFnetworkingManagerWithContentType:contentType atHttpHeaderField:httpHeader];
[manager POST:[self encodeUrl:url] parameters:params progress:^(NSProgress * _Nonnull uploadProgress) {
progress(uploadProgress);
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
succeed(task,responseObject);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
failure(task,error);
}];
}
//无httpheader upload file请求
+(void)UploadFileWithUrl:(NSString *)url atParams:(NSDictionary *)params atDatas:(NSArray *)datas atFileKeys:(NSArray *)fileKeys atProgress:(void(^)(NSProgress *requestProgress))progress atSucceed:(void(^)(NSURLSessionDataTask *task, id responseObject))succeed atFailure:(void(^)(NSURLSessionDataTask *task, NSError *error))failure
{
AFHTTPSessionManager *manager = [self initAFnetworkingManagerWithContentType:nil atHttpHeaderField:nil];
[manager POST:[self encodeUrl:url] parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
if(fileKeys == nil || [fileKeys count] <= 0){
for (int i = 0; i < [datas count]; i++) {
[formData appendPartWithFileData:datas[i] name:[NSString stringWithFormat:@"file_%@",@(i + 1)] fileName:[NSString stringWithFormat:@"UploadFile_%@%@",@(i + 1),DefaultFileSuffix] mimeType:DefaultMimeType];
}
}else{
for (int i = 0; i < [datas count]; i++) {
[formData appendPartWithFileData:datas[i] name:fileKeys[i] fileName:[NSString stringWithFormat:@"UploadFile_%@%@",@(i + 1),DefaultFileSuffix] mimeType:DefaultMimeType];
}
}
} progress:^(NSProgress * _Nonnull uploadProgress) {
progress(uploadProgress);
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
succeed(task,responseObject);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
failure(task,error);
}];
}
+(void)UploadFileAddConstraintWithHttpHeader:(NSDictionary *)httpHeader atUrl:(NSString *)url atParams:(NSDictionary *)params atDatas:(NSArray *)datas atFileKeys:(NSArray *)fileKeys atMimeType:(NSString *)mimeType atFileNames:(NSArray *)fileNames atContentType:(NSString *)contentType atProgress:(void(^)(NSProgress *requestProgress))progress atSucceed:(void(^)(NSURLSessionDataTask *task, id responseObject))succeed atFailure:(void(^)(NSURLSessionDataTask *task, NSError *error))failure
{
AFHTTPSessionManager *manager = [self initAFnetworkingManagerWithContentType:contentType atHttpHeaderField:httpHeader];
[manager POST:[self encodeUrl:url] parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
NSString *fileMimeType = mimeType == nil ? DefaultMimeType : mimeType;
if(fileKeys == nil || [fileKeys count] <= 0){
if(fileNames == nil || [fileNames count] <= 0){
for (int i = 0; i < [datas count]; i++) {
[formData appendPartWithFileData:datas[i] name:[NSString stringWithFormat:@"file_%@",@(i + 1)] fileName:[NSString stringWithFormat:@"%@%@",@(i + 1),DefaultFileSuffix] mimeType:fileMimeType];
}
}else{
for (int i = 0; i < [datas count]; i++) {
[formData appendPartWithFileData:datas[i] name:[NSString stringWithFormat:@"file_%@",@(i + 1)] fileName:fileNames[i] mimeType:fileMimeType];
}
}
}else{
if(fileNames == nil || [fileNames count] <= 0){
for (int i = 0; i < [datas count]; i++) {
[formData appendPartWithFileData:datas[i] name:fileKeys[i] fileName:[NSString stringWithFormat:@"%@%@",@(i + 1),DefaultFileSuffix] mimeType:fileMimeType];
}
}else{
for (int i = 0; i < [datas count]; i++) {
[formData appendPartWithFileData:datas[i] name:fileKeys[i] fileName:fileNames[i] mimeType:fileMimeType];
}
}
}
} progress:^(NSProgress * _Nonnull uploadProgress) {
if(progress != nil){
progress(uploadProgress);
}
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
succeed(task,responseObject);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
failure(task,error);
}];
}
+(void)PostRequestWithUrl:(NSString *)url atParams:(NSDictionary *)params atBeginHandle:(void (^)())beginHandle atSucceed:(void (^)(NSURLSessionDataTask *task, id responseObject))succeed atFailure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure
{
if(beginHandle != nil){
beginHandle();
}
AFHTTPSessionManager *manager = [self initAFnetworkingManagerWithContentType:nil atHttpHeaderField:@{@"token":[UserDefaultsOperate getLoginToken]}];
[manager POST:[self encodeUrl:url] parameters:params progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
debug(@"%@",responseObject);
succeed(task,responseObject);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
failure(task,error);
}];
}
//格式化URL
+(NSString *)encodeUrl:(NSString *)sourceURL
{
if (System_Version_Later(9.0)) {
return [sourceURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
}else{
return [sourceURL stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet characterSetWithCharactersInString:@"`#%^{}\"[]|\\<> "].invertedSet];
}
}
@end

