YTKNetwork的基本使用

本人有若干成套学习视频, 可试看! 可试看! 可试看, 重要的事情说三遍 包含Java, 数据结构与算法, iOS, 安卓, python, flutter等等, 如有需要, 联系微信tsaievan.

最近在写公司的项目, 所以没有更新简书, 没想到还有不少哥们惦记, 本来在酝酿一个大文章的, 无奈不知如何起笔, 还是先写点小文章吧.

公司的网络请求类没有自己封装, 而是用来猿题库团队的YTKNetwork网络封装类, 这个框架在github上也有3000+ stars了. 个人感觉还是很好用的, 看了一下源码, 不算特别大的框架, 打算有时间自己也撸一遍的.

对于感兴趣的同学, 可以尝试在自己的项目中使用这个框架, 但是按照官方文档上的说法, 如果你的项目是一个轻型的项目, 那就没有必要使用这个框架了, 自己用AFNetworking即可, 因为YTKNetwork本身也是基于AFNetworking的二次封装.

好了, 现在就来说一下这个框架如何使用吧

这个框架的类如下图所示, 我们今天需要用到的类其实就是我画红框的这两个类

YTKNetwork框架主要的类

说白了,就是网络配置网络请求

先说一下网络配置

我们请求服务器的baseUrl通常是不变的, 根据设计模式中的"单一设计原则", 我们只需要在网络配置的时候设置一遍baseUrl即可, 而不用再操心baseUrl地址的问题.

在程序加载完毕之后, 配置访问服务器的baseUrl

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    YTKNetworkConfig *config = [YTKNetworkConfig sharedInstance];
    config.baseUrl = @"http://m.api.haoshiqi.net";
    return YES;
}
再就是网络请求
  • 首先, 你要发起一个网络请求, 就必须封装一个网络请求类, 如下图所示
网络请求类, 继承自YTKRequest

这个网络请求类是继承自YTKRequest类的,YTKRequest又继承自YTKBaseRequest, YTKBaseRequest是一个网络请求类的基类

  • 重写网络请求类的init方法,并对外暴露一个接口

网络请求类的.h文件

#import <YTKNetwork/YTKNetwork.h>

@interface YFTestRequest : YTKRequest

- (instancetype)initWithDict:(NSDictionary *)dict;

@end

网络请求类的.m文件

#import "YFTestRequest.h"

@implementation YFTestRequest {
    NSDictionary *_dict;
}
- (instancetype)initWithDict:(NSDictionary *)dict {
    if (self = [super init]) {
        _dict = dict;
    }
    return self;
}
  • 重写请求方法
- (YTKRequestMethod)requestMethod {
    return YTKRequestMethodPost;
}
  • 重写请求url
    这个url地址是拼接在baseUrl后面的
- (NSString *)requestUrl {
    return @"/common/index";
}
  • 重写请求参数
-(id)requestArgument {
    return _dict;
}
那么, 我们如何使用这个网络请求呢, 很简单, 直接上代码
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
    NSDictionary *dict = @{
                           @"channel":@"App_Store",
                           @"device":@"iPhone%206",
                           @"location":@"113.923061%2C22.575888",
                           @"net":@"WIFI",
                           @"page":@"RootTableViewController",
                           @"sheight":@"667",
                           @"swidth":@"375",
                           @"terminal":@"ios",
                           @"timestamp":@"1476340105",
                           @"udid":@"c06322907b91f66bb58c2a9164832bd510231173",
                           @"v":@"1.7.0",
                           @"zoneId":@"2125",
                           };
    YFTestRequest *request = [[YFTestRequest alloc] initWithDict:dict];
    [request startWithCompletionBlockWithSuccess:^(__kindof YTKBaseRequest *request) {
        NSLog(@"%@",request.responseJSONObject);
    } failure:^(__kindof YTKBaseRequest *request) {
        NSLog(@"%@",request.requestOperationError);
    }];
}
  • 从上面的代码可以看出, 我将参数作为字典传进了初始化方法中, 为了举例方便, 我将参数写死了

  • 然后用我重写后的初始化方法初始一个网络请求对象

  • 最后调用

                                    failure:(YTKRequestCompletionBlock)failure```
这个方法, 来向服务器发起请求, 然后服务器利用block返回给我一串json数据, 我通过request的responseJSONObject属性就可以获取到

- 本例中, 我只要点击屏幕,华丽丽的json数据就出来了

![请求下来的json数据](http://upload-images.jianshu.io/upload_images/2868984-cc9d0352f3468209.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

#PS. 本人有若干成套学习视频, 包含`Java`, `数据结构与算法`, `iOS`, `安卓`, `python`, `flutter`等等, 如有需要, 联系微信`tsaievan`.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351

推荐阅读更多精彩内容

  • YTKNetwork介绍 YTKNetwork 是猿题库 iOS 研发团队基于 AFNetworking 封装的 ...
    天清水蓝阅读 15,669评论 37 77
  • AFHTTPRequestOperationManager 网络传输协议UDP、TCP、Http、Socket、X...
    Carden阅读 4,333评论 0 12
  • 放空自己 只剩灵魂 在禅的世界里游弋逡巡着 一个神明主宰着、指引着 是离你最近的情感尘埃起落 谁会明白沉浮着的是什...
    美食美客阅读 212评论 0 2
  • 小儿岔气 光说不练,假把式!没有孩子就不会真正懂孩子,今天嘉倫小朋友就给我上了一堂小儿岔气课,为我接下来...
    尹逊涛阅读 994评论 0 5
  • 十一点多,寝室熄了灯,刚准备上床,就被室友叫了过去,“嗨,过来,你过来,跟你说个事”她凑到我的耳朵小心地说“豪江和...
    向阳竹M阅读 206评论 2 2