数据请求工具类ios

来源:互联网 发布:golang mgo.v2 编辑:程序博客网 时间:2024/06/05 14:25

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





原创粉丝点击