封装网络工具类

摘要:
//HFNetWorkTools.h#importtypedefvoid(^callBack)();@classAFHTTPSessionManager;@interfaceHFNetWorkTools:NSObject@property(nonatomic,copy)AFHTTPSessionManager*manager;@property(n

//  HFNetWorkTools.h

#import <Foundation/Foundation.h>

typedef void(^callBack)();

@class AFHTTPSessionManager;

@interface HFNetWorkTools : NSObject

@property(nonatomic,copy)AFHTTPSessionManager *manager;


@property(nonatomic,copy)callBack  block;


+ (instancetype)sharedInstace;

- (void)getHighPingpaiListSuccess:(void(^)(id responseObject)  )success failure:(void (^)(NSError *error))failure;

@end




//HFNetWorkTools.m
#import "HFNetWorkTools.h"

#import "AFNetworking/AFNetworking.h"

static HFNetWorkTools  *instance;

@implementation HFNetWorkTools

+ (instancetype)sharedInstace
{
   
    
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        if (instance == nil)
        {
            instance = [[self alloc]init];
            
            instance.manager = [AFHTTPSessionManager manager];
            
            instance.manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", @"text/html", nil];
            //默认的是二进制  将其换成JSON类型的
            instance.manager.requestSerializer = [AFJSONRequestSerializer serializer];
        }
    });
    
    return  instance;
}

/**
 *  @param url     url
 *  @param parms   参数
 *  @param success 请求成功
 *  @param failure 请求失败
 */
- (void)PostWithUrl:(NSString *)url parms:(NSDictionary *)parms success:(void(^)(id  responseObject))success failure:(void(^)(NSError *error))failure
{
    [self.manager POST:url parameters:parms progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        success(responseObject);
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        failure(error);
    }];
}


- (void)getHighPingpaiListSuccess:(void(^)(id responseObject)  )success failure:(void (^)(NSError *error))failure
{
    [self PostWithUrl:@"http://iosapi.itcast.cn/car/highcarlist.json.php" parms:@{@"accountid":@"1"} success:^(id responseObject) {
        success(responseObject);
    } failure:^(NSError *error)
    {
        failure(error);
    }];
}
@end


HFModel.h
#import <Foundation/Foundation.h>

@interface HFModel : NSObject

@property(nonatomic,copy)NSString *carBrandId;

@property(nonatomic,copy)NSString *name;

@property(nonatomic,copy)NSString *url;

@end

HFModel.m
#import "HFModel.h"

@implementation HFModel

@end


在viewcontroller中调用网络工具接口
#import "ViewController.h"

#import "HFModel.h"

#import "HFNetWorkTools.h"

#import "AFNetworking.h"

#import "YYModel.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    //获取网络数据
    
    [[HFNetWorkTools sharedInstace] getHighPingpaiListSuccess:^(id responseObject)
     {
       // NSLog(@"%@",responseObject);
        
         //字典转模型
   NSArray *arr =  [NSArray yy_modelArrayWithClass:[HFModel class] json:responseObject[@"data"][@"high"]];
         
         NSLog(@"%ld",arr.count);
         
         
    } failure:^(NSError *error)
    {
        NSLog(@"%@",error);
    }];
    
}
@end

免责声明:文章转载自《封装网络工具类》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇如何停止处于stopping状态的windows服务Java Heap dump文件分析工具jhat简介下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

CentOS 7 优化TCP链接

在优化服务器配置时,Summary发现服务器端的WAIT连接上有大量的TIME,需要进行优化。Tomcat案例查询与Tomcat对应的端口的tcp链接,发现存在大量TIME_WAIT链接,以及一些其他状态连接,总计400+。...

vSphere HA 原理与配置

应当基于可用性需求和群集的特性选择vSphereHA接入控制策略。...

axios 处理超时问题 记录

前言:记录最近两天处理请求超时的逻辑。...

SQL SERVER 查看数据库执行过哪些语句(SQL历史语句记录)

SQLSERVER查看数据库已执行的语句(SQL历史语句记录)1.查看SQL执行效率和语句SelectTOP1000ST。textAS“SQL语句已执行”,QS。execution_CountAS'执行次数',QS。total_ elapsed_timeAS“耗时”,QS。total_logical_ReadsAS“逻辑读取次数”,QS。total_logi...

MySQL学习笔记:字符串前后补全0

遇到一个要求:如果位数小于6,则需要使用函数LPAD()和RPAD()自动完成6位。LPAD使用字符串padstr填充并完成左侧的str,直到其长度达到len个字符,并返回str。...

部署springboot+vue项目文档(若依ruoyi项目部署步骤)

1: 部署Linux+nginx部署背景代码1.1因为我使用了idea工具进行开发,所以终端中的mvnclean包生成了相应的jar包。这个jar包可以在相应文件所在目录的目标中找到。linux服务器需要加载redis和nginx。redis存储缓存数据,nginx用于代理前端和后端服务。打包vue项目并将dist文件复制到tomcat的webapps目录中...