WJRequstTool.h
#import <Foundation/Foundation.h>
@interface WJRequstTool : NSObject
/**
* 成功回调
*
* @param responseObject 请求结果
* @param backCode 返回码
*/
typedef void (^successBlock)(id responseObject, NSUInteger backCode);
/**
* 失败回调block
*
* @param error 失败信息
*/
typedef void (^failureBlock)(NSError *error);
/**
* 上传照片Block
*
* @param formData 上传的图片数据
*/
typedef void (^constructingBodyWithBlock)(id formData);
/**
* POST 请求
*
* @param URLString 网址
* @param parameters 参数
* @param success 成功回调
* @param failure 失败回调
*/
+ (void)POST:(NSString *)URLString parameters:(id)parameters success:(successBlock)success failure:(failureBlock)failure;
/**
* POST 请求(请求头已设置)
*
* @param URLString 网址
* @param parameters 参数
* @param success 成功回调
* @param failure 失败回调
*/
+ (void)POSTHEADER:(NSString *)URLString parameters:(id)parameters success:(successBlock)success failure:(failureBlock)failure;
/**
* 上传图片 (请求头已设置)
*
* @param URLString 请求地址
* @param parameters 参数
* @param block 图片处理
* @param success 成功回调
* @param failure 失败回调
*/
+ (void)POSTHEADER:(NSString *)URLString parameters:(id)parameters constructingBodyWithBlock:(constructingBodyWithBlock)block success:(successBlock)success failure:(failureBlock)failure;
/**
* 上传图片
*
* @param URLString 请求地址
* @param parameters 参数
* @param block 图片处理
* @param success 成功回调
* @param failure 失败回调
*/
+ (void)POST:(NSString *)URLString parameters:(id)parameters constructingBodyWithBlock:(constructingBodyWithBlock)block success:(successBlock)success failure:(failureBlock)failure;
+(void)versionUpdateRemindingCompleted:(void(^)(id responseObject))completion;
@end
WJRequstTool.m
#import "WJRequstTool.h"
@implementation WJRequstTool
//#define urdic @"userCode":[userDef objectForKey:@"userCode"]
+ (void)showActivitevie:(BOOL)show {
[UIApplication sharedApplication].networkActivityIndicatorVisible = show;
}
+ (void)POST:(NSString *)URLString parameters:(id)parameters success:(successBlock)success failure:(failureBlock)failure {
[self showActivitevie:YES];
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager.requestSerializer setValue:@"application/x-www-form-urlencoded;charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[manager POST:URLString parameters:parameters progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
id json = [NSJSONSerialization JSONObjectWithData:responseObject options:0 error:nil];
// NSUInteger backCode = [json[@"code"] unsignedIntegerValue];
if (success) {
success(json, nil);
[self showActivitevie:NO];
}
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
if (failure) {
failure(error);
[self showActivitevie:NO];
}
}];
}
+ (void)POST:(NSString *)URLString parameters:(id)parameters constructingBodyWithBlock:(constructingBodyWithBlock)block success:(successBlock)success failure:(failureBlock)failure {
[self showActivitevie:YES];
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager.requestSerializer setValue:@"application/x-www-form-urlencoded;charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[manager POST:URLString parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
block(formData);
} progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
id json = [NSJSONSerialization JSONObjectWithData:responseObject options:0 error:nil];
NSUInteger backCode = [json[@"code"] unsignedIntegerValue];
if (success) {
success(json, backCode);
[self showActivitevie:NO];
}
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
if (failure) {
failure(error);
[self showActivitevie:NO];
}
}];
}
+ (void)POSTHEADER:(NSString *)URLString parameters:(id)parameters constructingBodyWithBlock:(constructingBodyWithBlock)block success:(successBlock)success failure:(failureBlock)failure {
[self showActivitevie:YES];
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager.requestSerializer setValue:@"application/x-www-form-urlencoded;charset=utf-8" forHTTPHeaderField:@"Content-Type"];
// NSString *userToken = [AccountTool account].userToken;
// if (userToken) {
// [manager.requestSerializer setValue:userToken forHTTPHeaderField:@"userToken"];
// [manager.requestSerializer setValue:@"1" forHTTPHeaderField:@"ClientType"];
// }
[manager POST:URLString parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
block(formData);
} progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
id json = [NSJSONSerialization JSONObjectWithData:responseObject options:0 error:nil];
NSUInteger backCode = [json[@"code"] unsignedIntegerValue];
if (success) {
success(json, backCode);
[self showActivitevie:NO];
}
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
if (failure) {
failure(error);
[self showActivitevie:NO];
}
}];
}
+ (void)POSTHEADER:(NSString *)URLString parameters:(id)parameters success:(successBlock)success failure:(failureBlock)failure {
[self showActivitevie:YES];
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager.requestSerializer setValue:@"application/x-www-form-urlencoded;charset=utf-8" forHTTPHeaderField:@"Content-Type"];
// NSString *userToken = [AccountTool account].userToken;
// if (userToken) {
// [manager.requestSerializer setValue:userToken forHTTPHeaderField:@"userToken"];
// [manager.requestSerializer setValue:@"1" forHTTPHeaderField:@"ClientType"];
// }
[manager POST:URLString parameters:parameters progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
id json = [NSJSONSerialization JSONObjectWithData:responseObject options:0 error:nil];
// NSUInteger backCode = [json[@"code"] unsignedIntegerValue];
if (success) {
success(json,nil);
[self showActivitevie:NO];
}
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
if (failure) {
failure(error);
[self showActivitevie:NO];
}
}];
}
//从网络上请求版本
+(void)versionUpdateRemindingCompleted:(void(^)(id responseObject))completion{
NSString *urlString = @"https://itunes.apple.com/CN/lookup?id=1262952129";
[self POST:urlString parameters:nil success:^(id responseObject, NSUInteger backCode) {
if (responseObject) {
NSArray *results = responseObject[@"results"];
if (results.count > 0) {
NSDictionary *appInfo = [results objectAtIndex:0];
NSString *version= appInfo[@"version"];
if (version) {
completion(version);
NSLog(@"%@",version);
}else{
completion(nil);
}
}
completion(nil);
}else{
completion(nil);
}
} failure:^(NSError *error) {
[MBProgressHUD showError:@"请求数据失败"];
}];
}
@end