iOS開發(fā)之YTKNetwork 填坑

相關(guān)文章參考:
https://github.com/yuantiku/YTKNetwork](https://github.com/yuantiku/YTKNetwork
http://www.itdecent.cn/p/30dd2f665933
http://blog.csdn.net/majiakun1/article/details/49075917

填坑

1-1.開發(fā)碰到跟平臺(tái)打交道,大多數(shù)采用的是json格式,但是YTKNetwork采用默認(rèn)的是http,所以,如果項(xiàng)目的請(qǐng)求類型跟響應(yīng)類型都是json,在你的請(qǐng)求類里邊,重寫這兩個(gè)方法,否則請(qǐng)求失敗
默認(rèn)請(qǐng)求和響應(yīng)類型
手動(dòng)更改
1-2 請(qǐng)求的參數(shù),正常來(lái)說(shuō),如果使用AFN,除去請(qǐng)求header需要單獨(dú)設(shè)置外,body的參數(shù)需要我們手動(dòng)添加即可,但是YTKNetwork卻不是,發(fā)送請(qǐng)求的header跟body 需要這么寫(不知道是平臺(tái)的原因,還是框架的原因)
image.png
1-3 線程問題,使用此類YTKChainRequest

例如,我們有一個(gè)需求,需要用戶在注冊(cè)時(shí),先發(fā)送注冊(cè)的Api,然后:
如果注冊(cè)成功,再發(fā)送讀取用戶信息的Api。并且,讀取用戶信息的Api需要使用注冊(cè)成功返回的用戶id號(hào)。
如果注冊(cè)失敗,則不發(fā)送讀取用戶信息的Api了。
以下是具體的代碼示例,在示例中,我們?cè)趕endChainRequest方法中設(shè)置好了Api相互的依賴,然后。 我們就可以通過chainRequestFinished回調(diào)來(lái)處理所有網(wǎng)絡(luò)請(qǐng)求都發(fā)送成功的邏輯了。如果有任何其中一個(gè)網(wǎng)絡(luò)請(qǐng)求失敗了,則會(huì)觸發(fā)chainRequestFailed回調(diào)。

- (void)sendChainRequest {
    RegisterApi *reg = [[RegisterApi alloc] initWithUsername:@"username" password:@"password"];
    YTKChainRequest *chainReq = [[YTKChainRequest alloc] init];
    [chainReq addRequest:reg callback:^(YTKChainRequest *chainRequest, YTKBaseRequest *baseRequest) {
        RegisterApi *result = (RegisterApi *)baseRequest;
        NSString *userId = [result userId];
        GetUserInfoApi *api = [[GetUserInfoApi alloc] initWithUserId:userId];
        [chainRequest addRequest:api callback:nil];

    }];
    chainReq.delegate = self;
    // start to send request
    [chainReq start];
}

- (void)chainRequestFinished:(YTKChainRequest *)chainRequest {
    // all requests are done
}

- (void)chainRequestFailed:(YTKChainRequest *)chainRequest failedBaseRequest:(YTKBaseRequest*)request {
    // some one of request is failed
}
個(gè)人建議,如果項(xiàng)目不是特別的復(fù)雜,請(qǐng)求類之間需要特別的依賴,用AFN就足夠,反過來(lái)說(shuō),使用YTK可以每個(gè)請(qǐng)求都單獨(dú)出來(lái),對(duì)于大型的項(xiàng)目開發(fā),管理上有一定優(yōu)勢(shì)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容