前言
之前開源了一個基于http封裝的網(wǎng)絡(luò)請求轿钠,具體的可以查看之前的文章,奈何隨著Api的升級囱怕,目前又推薦了另一個Api形式進(jìn)行網(wǎng)絡(luò)通信磷支,也就是基于Remote Communication Kit(遠(yuǎn)場通信服務(wù)) , 只能感嘆一聲楼咳,Api變化的真實迅速啊熄捍,有點跟不上官方的節(jié)奏了。
為了便于以后得Api的維護(hù)母怜,怎么辦余耽?只能再根據(jù) Remote Communication Kit(遠(yuǎn)場通信服務(wù)) 再重新搞一個,畢竟以后的演進(jìn)都是基于此了糙申。
本文的內(nèi)容主要是把之前基于http封裝的庫宾添,修改為當(dāng)前的Remote Communication Kit(遠(yuǎn)場通信服務(wù)),無非就是通信的方式變了柜裸,其他都大差不差缕陕。
本文的內(nèi)容如下:
1、Remote Communication Kit(遠(yuǎn)場通信服務(wù))簡單介紹
2疙挺、http庫快速使用
3扛邑、http庫和net庫的差異點
4、http庫相關(guān)總結(jié)
一铐然、Remote Communication Kit(遠(yuǎn)場通信服務(wù))簡單介紹
Remote Communication Kit(遠(yuǎn)場通信服務(wù))是華為提供的HTTP發(fā)起數(shù)據(jù)請求的NAPI封裝蔬崩,應(yīng)用通過Remote Communication Kit可便捷快速地向服務(wù)器發(fā)起數(shù)據(jù)請求恶座。
使用Remote Communication Kit的主要業(yè)務(wù)流程如下:
1、應(yīng)用客戶端創(chuàng)建會話沥阳。
2跨琳、應(yīng)用客戶端發(fā)起請求。
3桐罕、應(yīng)用客戶端接收請求結(jié)果脉让,處理相應(yīng)業(yè)務(wù)。
二功炮、http庫快速使用
中心倉庫地址:https://ohpm.openharmony.cn/#/cn/detail/@abner%2Fhttp
目前封裝好的http庫已經(jīng)提交至了中心倉庫溅潜,大家可以在中心倉庫進(jìn)行查看使用,除了個別地方有差異之外薪伏,各個功能完全和net庫一樣滚澜,方便原來使用net的的同學(xué)進(jìn)行無縫銜接。
遠(yuǎn)程依賴方式使用【推薦】
方式一:在Terminal窗口中嫁怀,執(zhí)行如下命令安裝三方包设捐,DevEco Studio會自動在工程的oh-package.json5中自動添加三方包依賴。
建議:在使用的模塊路徑下進(jìn)行執(zhí)行命令眶掌。
ohpm install @abner/http
方式二:在工程的oh-package.json5中設(shè)置三方包依賴挡育,配置示例如下:
"dependencies": { "@abner/http": "^1.0.0"}
三、http庫和net庫的差異點
差異點一朴爬,攔截器
攔截器不同即寒,net庫是基于http進(jìn)行封裝的,http是沒有攔截器一說的召噩,為了實現(xiàn)net庫的請求攔截母赵,做了一層同步回調(diào)處理,而http庫是基于Remote Communication Kit(遠(yuǎn)場通信服務(wù))進(jìn)行封裝的具滴,自帶的就有攔截器凹嘲,可以在全局或者單獨請求時進(jìn)行配置。
全局配置
全局配置可以應(yīng)對每一個網(wǎng)絡(luò)請求构韵。
Net.getInstance().init({
interceptors: [new GlobalInterceptor()]
})
也可以通過
Net.getInstance().setInterceptors([new GlobalInterceptor()])
單個配置
單個配置僅僅適用于當(dāng)前的網(wǎng)絡(luò)請求周蹭。
Net.post("/cert/xx")
.setInterceptor(new TestInterceptor())//單獨增加攔截器
// .setRequestInterceptors() //可以通過這個方法,設(shè)置只加載自身攔截器疲恢,過濾掉全局
.setParams({
"index_type": -1,
"size": 1,
})
.requestString((result) => {
console.log("===success:" + result)
}, (err) => {
console.log("===error:" + err.getMessage())
})
差異點二凶朗,個別屬性參數(shù)不一樣
畢竟Api發(fā)生了變化,相關(guān)的方法也會有著不一樣显拳,比如設(shè)置連接超時棚愤,讀取超時等等,需要采用新的方法進(jìn)行適配。
四宛畦、http庫相關(guān)總結(jié)
和net庫有著異曲同工之處瘸洛,所以,之前如果你使用的是net庫次和,可以無縫銜接反肋,當(dāng)然了,官方也沒有說刪除Api http斯够,所以針對Api http也是可以使用的囚玫,既然官方已經(jīng)標(biāo)注了,大家還是盡量使用Remote Communication Kit(遠(yuǎn)場通信服務(wù))读规。