Skip to content

MISSAJJ自己写的一个基于AFNetworking为内核的HTTP请求工具类

Notifications You must be signed in to change notification settings

MISSAJJ/MAHttpTool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MAHttpTool

MISSAJJ自己写的一个基于AFNetworking为内核的HTTP请求工具类

###更新日期

更新日期: 16-03-04 14:03:34

1,增加HUD功能 MAHUDTool ,

此工具类是将HUD提示框单独抽出一个单例工具类, 目前使用的是MBProgressHUD,后期如果项目需要换SVProgressHUD,JGProgressHUD等其他HUD,只需要在MAHUDTool 这个类里单独改写

2,通过alert,处理返回的网络错误

更新日期: 16-02-29 14:02:17

提供参数httpMethod:(NSString *)method, 判断是 GET 还是 POST 请求

###前言

短短一年,为目前的公司陆续开发了5个独立的APP项目了(其中4个APP已经上架了AppStore),

由于经手的项目逐渐增多,更新维护周期频繁,常常无暇去总结归纳或者重构代码,

面对早期只是为了实现功能及效果而写的冗余代码,总是心有余力不足,

在心头积压了很多无奈,遗憾,纠结.....

2016年新年过后,乘着完成上架第5个APP项目后的空闲,陆续整理一些自己项目中积累下来的工具类,

这些工具类基于MJ大咖 的项目分层逻辑思维的灵魂,融合了自己的项目实践,

对于一些IOS开发新手来说,还是很容易理解,也有些帮助的...

###Why?为什么要写这个工具类?

用代码分层的理念和方案,单独写了一个MAHttpTool工具类用于调用AFNetworking请求服务器端的API数据,后期如果项目需要修改就只需要在这个MAHttpTool工具类里改写和调试,不用在整个项目里批量寻找再一段一段改写代码了,提高了效率。

提供参数httpMethod:(NSString *)method, 判断是 GET 还是 POST 请求

###Void#请求方法################################################

/**
 *  @author MISSAJJ, 16-02-29 14:02:17
 *
 *   请求api  *****返回block***** 分为 post 和get 两种 请求方式
 *
 *  @param URLString  请求的基本url
 *  @param method     请求方法(get,post)
 *  @param parameters 请求的参数字典
 *  @param success    请求成功的回调
 *  @param failure    请求失败的回调
 */
+ (void)requestURLString:(NSString *)URLString
     httpMethod:(NSString *)method
     parameters:(id)parameters
        success:(void (^)(id))success
        failure:(void (^)(NSError *))failure;
 

###Practice # 使用实践################################################

#pragma mark ==请求api获取用户数据==
- (void)getUserInfoWithParameters:(id)parameters success:(void(^)(id responseObject))success failure:(void(^)(NSError *error))failure
{

    //请求API
    [MAHttpTool requestURLString:LOGIN httpMethod:HTTPMETHOD_POST parameters:parameters success:^(id responseObject) {
        
        if(success){
            success(responseObject);  //继续通过block回传给上层去处理数据
        }
        
    } failure:^(NSError *error) {
       
        if (failure) {
            failure(error);
        }
        
   }];
    
}

###Void#上传图片或者文件的请求方法################################################

/**
 *  @author MISSAJJ, 16-02-29 15:02:00
 *
 *  上传图片或者文件的请求
 *
 *  @param URLString   请求的基本的url
 *  @param parameters  请求的参数字典
 *  @param uploadParam 上传的参数字典
 *  @param success     请求成功的回调
 *  @param failure     请求失败的回调
 *
 */
+ (void)uploadURLString:(NSString *)URLString
    parameters:(id)parameters
   uploadParam:(MAUploadParam *)uploadParam
       success:(void (^)(id responseObject))success
       failure:(void (^)(NSError *error))failure;

此方法是借鉴了MJ大咖 的视频课程,将上传的参数字典建立模型

###Practice # 上传图片或者文件的使用实践################################################

       /**
         *  @author MISSAJJ, 16-02-29 15:02:52
         *
         *  FileData:要上传的文件的二进制数据
         *  name:上传参数名称
         *  fileName:上传到服务器的文件名称
         *  mimeType:文件类型
          
         //使用方法
         //1、创建上传的模型 (上传图片)
         MAUploadParam *uploadP = [[MAUploadParam alloc] init];
         uploadP.data = UIImagePNGRepresentation(image);
         uploadP.name = @"pic";
         uploadP.fileName = @"image.png";
         uploadP.mimeType = @"image/png";
         
         //2、请求HTTP:
         //(注意)如果一个方法,要传很多参数,就把参数先包装成一个模型,传参时再param.keyValues转成字典
         [MAHttpTool uploadURLString:URL_UPLOAD parameters:param.keyValues uploadParam:uploadP success:^(id responseObject) {
         if (success) {
         success();
         }
         } failure:^(NSError *error) {
         if (failure) {
         failure(error);
         }
         }];

###Other其他

很希望能和大咖们一起快乐地奔跑,不再是一个孤独的攻城狮, 希望能有更多的狮子一起共勉探讨学习,共同进步!

我的联系方式 : QQ 996174446 [验证:IOS攻城狮]

About

MISSAJJ自己写的一个基于AFNetworking为内核的HTTP请求工具类

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published