美文网首页
IOS框架学习之AFN管理工具

IOS框架学习之AFN管理工具

作者: 最强的小强 | 来源:发表于2018-05-24 19:01 被阅读0次
    1. 将AFN的get请求和post请求封装在自己写的一个类XZQHttpTool里面。
    2. 这样需求变更的时候,只需要改一处就可以了。
    3. 最后使用的时候调用就可以了。
    #pragmark -mark AFN的使用
    -(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)even
    {
        // 写参数
        NSDictionary *paramDict=@{
                                  @"username":@"520it",
                                  @"pwd":@"520it",
                                  @"type":@"JSON"
                                  };
    
        [XZQHttpTool get:@"http://120.25.226.186:32812/login" params:paramDict success:^(id responseObj) {
            NSLog(@"%@-%@",[responseObj class],responseObj);
        } failure:^(NSError *error) {
            NSLog(@"请求失败--%@",error);
        }];
    }
    
    附:XZQHttpTool类
    //
    //  XZQHttpTool.h
    //  AFN管理工具
    //
    //  Created by xzq on 2018/4/22.
    //  Copyright © 2018年 xzq. All rights reserved.
    //  网络请求工具类,负责整个项目中所有的Http网络请求
    
    #import <Foundation/Foundation.h>
    #import <AFNetworking.h>
    
    @interface XZQHttpTool : NSObject
    
    /**
     *  发送一个GET请求
     *
     *  @param url     请求路径
     *  @param params  请求参数
     *  @param success 请求成功后的回调(请将请求成功后想做的事情写到这个block中)
     *  @param failure 请求失败后的回调(请将请求失败后想做的事情写到这个block中)
     */
    + (void)get:(NSString *)url params:(NSDictionary *)params success:(void(^)(id responseObj))success failure:(void(^)(NSError *error))failure;
    
    /**
     *  发送一个POST请求
     *
     *  @param url     请求路径
     *  @param params  请求参数
     *  @param success 请求成功后的回调(请将请求成功后想做的事情写到这个block中)
     *  @param failure 请求失败后的回调(请将请求失败后想做的事情写到这个block中)
     */
    + (NSURLSessionDataTask *)post:(NSString *)url params:(NSDictionary *)params success:(void(^)(id responseObj))success failure:(void(^)(NSError *error))failure;
    
    @end
    
    
    //
    //  XZQHttpTool.m
    //  AFN管理工具
    //
    //  Created by xzq on 2018/4/22.
    //  Copyright © 2018年 xzq. All rights reserved.
    //  网络请求工具类,负责整个项目中所有的Http网络请求
    
    #import "XZQHttpTool.h"
    
    @implementation XZQHttpTool
    
    +(void)get:(NSString *)url params:(NSDictionary *)params success:(void (^)(id))success failure:(void (^)(NSError *))failure
    {
        //1.获得请求管理者
        AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];
        
        //2.发送Get请求
        [mgr GET:url parameters:params progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
            if (success) {
                success(responseObject);
            }
        } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
            if (failure) {
                failure(error);
            }
        }];
    }
    
    +(NSURLSessionDataTask *)post:(NSString *)url params:(NSDictionary *)params success:(void (^)(id))success failure:(void (^)(NSError *))failure
    {
        //1.获得请求管理者
        AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];
        
        NSURLSessionDataTask *dataTask = [mgr POST:url parameters:params progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
            
            if (success) {
                success(responseObject);
            }
            
        } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
            
            if (failure) {
                failure(error);
            }
        }];
        
        return dataTask;
    }
    
    
    @end
    
    

    相关文章

      网友评论

          本文标题:IOS框架学习之AFN管理工具

          本文链接:https://www.haomeiwen.com/subject/lctejftx.html