YTKNetwork的基本使用

本人有若干成套學習視頻, 可試看! 可試看! 可試看, 重要的事情說三遍 包含Java, 數(shù)據(jù)結(jié)構與算法, iOS, 安卓, python, flutter等等, 如有需要, 聯(lián)系微信tsaievan.

最近在寫公司的項目, 所以沒有更新簡書, 沒想到還有不少哥們惦記, 本來在醞釀一個大文章的, 無奈不知如何起筆, 還是先寫點小文章吧.

公司的網(wǎng)絡請求類沒有自己封裝, 而是用來猿題庫團隊的YTKNetwork網(wǎng)絡封裝類, 這個框架在github上也有3000+ stars了. 個人感覺還是很好用的, 看了一下源碼, 不算特別大的框架, 打算有時間自己也擼一遍的.

對于感興趣的同學, 可以嘗試在自己的項目中使用這個框架, 但是按照官方文檔上的說法, 如果你的項目是一個輕型的項目, 那就沒有必要使用這個框架了, 自己用AFNetworking即可, 因為YTKNetwork本身也是基于AFNetworking的二次封裝.

好了, 現(xiàn)在就來說一下這個框架如何使用吧

這個框架的類如下圖所示, 我們今天需要用到的類其實就是我畫紅框的這兩個類

YTKNetwork框架主要的類

說白了,就是網(wǎng)絡配置網(wǎng)絡請求

先說一下網(wǎng)絡配置

我們請求服務器的baseUrl通常是不變的, 根據(jù)設計模式中的"單一設計原則", 我們只需要在網(wǎng)絡配置的時候設置一遍baseUrl即可, 而不用再操心baseUrl地址的問題.

在程序加載完畢之后, 配置訪問服務器的baseUrl

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    YTKNetworkConfig *config = [YTKNetworkConfig sharedInstance];
    config.baseUrl = @"http://m.api.haoshiqi.net";
    return YES;
}
再就是網(wǎng)絡請求
  • 首先, 你要發(fā)起一個網(wǎng)絡請求, 就必須封裝一個網(wǎng)絡請求類, 如下圖所示
網(wǎng)絡請求類, 繼承自YTKRequest

這個網(wǎng)絡請求類是繼承自YTKRequest類的,YTKRequest又繼承自YTKBaseRequest, YTKBaseRequest是一個網(wǎng)絡請求類的基類

  • 重寫網(wǎng)絡請求類的init方法,并對外暴露一個接口

網(wǎng)絡請求類的.h文件

#import <YTKNetwork/YTKNetwork.h>

@interface YFTestRequest : YTKRequest

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

@end

網(wǎng)絡請求類的.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";
}
  • 重寫請求參數(shù)
-(id)requestArgument {
    return _dict;
}
那么, 我們?nèi)绾问褂眠@個網(wǎng)絡請求呢, 很簡單, 直接上代碼
- (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);
    }];
}
  • 從上面的代碼可以看出, 我將參數(shù)作為字典傳進了初始化方法中, 為了舉例方便, 我將參數(shù)寫死了

  • 然后用我重寫后的初始化方法初始一個網(wǎng)絡請求對象

  • 最后調(diào)用

                                    failure:(YTKRequestCompletionBlock)failure```
這個方法, 來向服務器發(fā)起請求, 然后服務器利用block返回給我一串json數(shù)據(jù), 我通過request的responseJSONObject屬性就可以獲取到

- 本例中, 我只要點擊屏幕,華麗麗的json數(shù)據(jù)就出來了

![請求下來的json數(shù)據(jù)](http://upload-images.jianshu.io/upload_images/2868984-cc9d0352f3468209.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

#PS. 本人有若干成套學習視頻, 包含`Java`, `數(shù)據(jù)結(jié)構與算法`, `iOS`, `安卓`, `python`, `flutter`等等, 如有需要, 聯(lián)系微信`tsaievan`.
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子贷帮,更是在濱河造成了極大的恐慌,老刑警劉巖盈简,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件艰额,死亡現(xiàn)場離奇詭異陶因,居然都是意外死亡堰汉,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門费什,熙熙樓的掌柜王于貴愁眉苦臉地迎上來钾恢,“玉大人,你說我怎么就攤上這事鸳址〈耱剑” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵稿黍,是天一觀的道長疹瘦。 經(jīng)常有香客問我,道長巡球,這世上最難降的妖魔是什么言沐? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮酣栈,結(jié)果婚禮上险胰,老公的妹妹穿的比我還像新娘。我一直安慰自己矿筝,他們只是感情好起便,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著窖维,像睡著了一般榆综。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上陈辱,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天,我揣著相機與錄音细诸,去河邊找鬼沛贪。 笑死,一個胖子當著我的面吹牛震贵,可吹牛的內(nèi)容都是我干的利赋。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼猩系,長吁一口氣:“原來是場噩夢啊……” “哼媚送!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起寇甸,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤塘偎,失蹤者是張志新(化名)和其女友劉穎疗涉,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吟秩,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡咱扣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了涵防。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片闹伪。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖壮池,靈堂內(nèi)的尸體忽然破棺而出偏瓤,到底是詐尸還是另有隱情,我是刑警寧澤椰憋,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布厅克,位于F島的核電站,受9級特大地震影響熏矿,放射性物質(zhì)發(fā)生泄漏已骇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一票编、第九天 我趴在偏房一處隱蔽的房頂上張望褪储。 院中可真熱鬧,春花似錦慧域、人聲如沸鲤竹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽辛藻。三九已至,卻和暖如春互订,著一層夾襖步出監(jiān)牢的瞬間吱肌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工仰禽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留氮墨,地道東北人。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓吐葵,卻偏偏與公主長得像规揪,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子温峭,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內(nèi)容

  • YTKNetwork介紹 YTKNetwork 是猿題庫 iOS 研發(fā)團隊基于 AFNetworking 封裝的 ...
    天清水藍閱讀 15,698評論 37 77
  • AFHTTPRequestOperationManager 網(wǎng)絡傳輸協(xié)議UDP猛铅、TCP、Http凤藏、Socket奸忽、X...
    Carden閱讀 4,351評論 0 12
  • 放空自己 只剩靈魂 在禪的世界里游弋逡巡著 一個神明主宰著堕伪、指引著 是離你最近的情感塵埃起落 誰會明白沉浮著的是什...
    美食美客閱讀 216評論 0 2
  • 小兒岔氣 光說不練苛萎,假把式桨昙!沒有孩子就不會真正懂孩子,今天嘉倫小朋友就給我上了一堂小兒岔氣課腌歉,為我接下來...
    尹遜濤閱讀 1,000評論 0 5
  • 十一點多翘盖,寢室熄了燈桂塞,剛準備上床,就被室友叫了過去馍驯,“嗨阁危,過來,你過來汰瘫,跟你說個事”她湊到我的耳朵小心地說“豪江和...
    向陽竹M閱讀 209評論 2 2