1.首先建个NSobeject类
一:.h文件方法
/** post请求 */
- (void)post:(NSString *_Nullable)url params:(NSMutableDictionary _Nullable)params controller:(UIViewController_Nullable)VC success:(void (^_Nullable)(id _Nullable json))success failure:(void (^_Nullable)(NSError * _Nullable error))failure;
.m文件的方法实现
- (void)post:(NSString *_Nullable)url
params:(NSMutableDictionary _Nullable)params
controller:(UIViewController_Nullable)VC
success:(void (^_Nullable)(id _Nullable json))success
failure:(void (^_Nullable)(NSError * _Nullable error))failure {
// 1.创建请求管理者
AFHTTPSessionManager *manager=[AFHTTPSessionManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];//请求数据格式为json
manager.responseSerializer = [AFJSONResponseSerializer serializer];//响应数据格式
manager.requestSerializer.timeoutInterval = 10.0;
manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObjectsFromSet:[NSSet setWithObjects:@"application/json", @"text/json" , @"text/html", @"text/plain", @"text/javascript", nil]];
[manager POST:url parameters:params progress:^(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);
}
}];
}
二,
/** get请求 */
.h文件方法
- (void)get:(NSString *_Nullable)url params:(NSMutableDictionary _Nullable)params controller:(UIViewController_Nullable)VC success:(void (^_Nullable)(id _Nullable json))success failure:(void (^_Nullable)(NSError * _Nullable error))failure;
.m文件方法 - (void)get:(NSString *_Nullable)url
params:(NSMutableDictionary _Nullable)params
controller:(UIViewController_Nullable)VC
success:(void (^_Nullable)(id _Nullable json))success
failure:(void (^_Nullable)(NSError * _Nullable error))failure
{
// 1.创建请求管理者
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
manager.requestSerializer.timeoutInterval = 10.0;
manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObjectsFromSet:[NSSet setWithObjects:@"application/json", @"text/html", @"text/plain", @"text/json",@"text/javascript", nil]];
[manager GET:url parameters:params progress:^(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)postlist:(NSString *_Nullable)url params:(NSMutableDictionary _Nullable)params controller:(UIViewController_Nullable)VC success:(void (^_Nullable)(id _Nullable json))success failure:(void (^_Nullable)(NSError * _Nullable error))failure;
//表单格式请求formdata
+(void)postlist:(NSString *)url
params:(NSMutableDictionary *)params
controller:(UIViewController *)VC
success:(void (^)(id _Nullable))success
failure:(void (^)(NSError * _Nullable))failure{
AFHTTPSessionManager * manager=[AFHTTPSessionManager manager];
//发送给服务器的格式(请求格式)
manager.requestSerializer = [AFJSONRequestSerializer serializer];//json格式
//响应服务器返回数据回来的格式
manager.responseSerializer = [AFJSONResponseSerializer serializer];//json格式
manager.requestSerializer.timeoutInterval = 10.0;
manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObjectsFromSet:[NSSet setWithObjects:@"application/json", @"text/html", @"text/plain", @"text/json",@"text/javascript", nil]];
[manager POST:url parameters:nil constructingBodyWithBlock:^(id _Nonnull formData) {
NSArray * allkeys = [params allKeys];
for (int i = 0; i < allkeys.count; i++)
{
NSString * key = [allkeys objectAtIndex:i];
//因为字典中存储的多种不同的类型,所以必须用id类型去接收它
id obj = [params objectForKey:key];
NSString* strvalues=[NSString stringWithFormat:@"%@",obj];//id类型转字符串,这里必须先转字符串
[formData appendPartWithFormData:[strvalues dataUsingEncoding:NSUTF8StringEncoding] name:key];
NSLog(@"数据格式%@",formData);
}
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nonnull responseObject) {
if (success) {
success(responseObject);
}
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
if (failure) {
failure(error);
}
}];
}
/** 上传多张图片数组 */
(void)postImageArray:(NSArray *_Nullable)imageArray andUrl:(NSString *_Nullable)url params:(NSDictionary *_Nullable)params success:(void (^_Nullable)(id _Nullable json))success failure:(void (^_Nullable)(NSError * _Nullable error))failure;
(void)posthttprequest:(NSString *_Nullable)url params:(NSMutableDictionary _Nullable)params controller:(UIViewController_Nullable)VC success:(void (^_Nullable)(id _Nullable json))success failure:(void (^_Nullable)(NSError * _Nullable error))failure{
// 1.创建请求管理者
AFHTTPSessionManager *manager=[AFHTTPSessionManager manager];
manager.requestSerializer = [AFHTTPRequestSerializer serializer];//请求数据格式为二进制
manager.responseSerializer = [AFJSONResponseSerializer serializer];//响应数据格式
manager.requestSerializer.timeoutInterval = 10.0;
manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObjectsFromSet:[NSSet setWithObjects:@"application/json", @"text/json" , @"text/html", @"text/plain", @"text/javascript", nil]];
[manager POST:url parameters:params progress:^(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);
}
}];
}
- (void)postImageArray:(NSArray *_Nullable)imageArray andUrl:(NSString *_Nullable)url params:(NSDictionary *_Nullable)params success:(void (^_Nullable)(id _Nullable json))success failure:(void (^_Nullable)(NSError * _Nullable error))failure{
AFHTTPSessionManager * manager=[AFHTTPSessionManager manager];
//发送给服务器的格式(请求格式)
manager.requestSerializer = [AFJSONRequestSerializer serializer];//json格式
//响应服务器返回数据回来的格式
manager.responseSerializer = [AFJSONResponseSerializer serializer];//json格式
manager.requestSerializer.timeoutInterval = 30.0;
manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObjectsFromSet:[NSSet setWithObjects:@"application/json", @"text/html", @"text/plain", @"text/json",@"text/javascript", nil]];
[manager POST:url parameters:params constructingBodyWithBlock:^(id _Nonnull formData) {
if(imageArray.count>0)
{
for(NSInteger i=0; i
}