IOS框架学习之AFN管理工具

  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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容