一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙環(huán)境下的Http網(wǎng)絡(luò)訪(fǎng)問(wèn)完成設(shè)計(jì)

鴻蒙系統(tǒng)HarmonyOS ? 來(lái)源:51cto ? 作者:ZZR老師 ? 2021-04-16 13:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1.原始的網(wǎng)絡(luò)訪(fǎng)問(wèn),再加上多線(xiàn)程,會(huì)使程序臃腫

網(wǎng)絡(luò)請(qǐng)求在現(xiàn)代的應(yīng)用開(kāi)發(fā)中必不可少,我們熟知的網(wǎng)絡(luò)請(qǐng)求框架還真不少,像HttpClient、OkHttp還有volley等,它們確實(shí)方便但鴻蒙還不能使用它們,還好我們有HttpURLConnection。使用其進(jìn)行網(wǎng)絡(luò)請(qǐng)求的示例代碼,如下圖所示(不用仔細(xì)研究):

o4YBAGB5JTqAB4GKAACRNw9dgwM381.png

相信你想說(shuō):HttpURLConnection雖略有繁瑣,但能用。然而,這并不是我們要處理網(wǎng)絡(luò)訪(fǎng)問(wèn)的全部。因?yàn)榫W(wǎng)絡(luò)操作耗時(shí)及不穩(wěn)定性,使得我們必須在子線(xiàn)程中進(jìn)行上述代碼的工作,等到網(wǎng)絡(luò)請(qǐng)求有響應(yīng)結(jié)果了,我們又需要回到主線(xiàn)程更新UI,這又使得我們的程序又胖了一圈。如果請(qǐng)求,再多一點(diǎn)呢?我們的程序就胖了好幾圈...

2.將多線(xiàn)程與網(wǎng)絡(luò)訪(fǎng)問(wèn)封裝,為程序瘦身

我們希望的網(wǎng)絡(luò)請(qǐng)求是這樣的:1.隱藏網(wǎng)絡(luò)訪(fǎng)問(wèn)細(xì)節(jié);2.優(yōu)雅處理UI更新。

基于以上兩點(diǎn),我封裝了一套Http請(qǐng)求的工具類(lèi),最終的網(wǎng)絡(luò)訪(fǎng)問(wèn)會(huì)變成——這樣:

    ZZRHttp.get(url, new ZZRCallBack.CallBackString() {
            @Override
            public void onFailure(int code, String errorMessage) {
                //http訪(fǎng)問(wèn)出錯(cuò),此部分在主線(xiàn)程中工作,可以更新UI等操做。
            }
            @Override
            public void onResponse(String response) {
                //http訪(fǎng)問(wèn)成功,此部分在主線(xiàn)程中工作,可以更新UI等操作。
            }
    });

代碼解析:此get方法能夠在子線(xiàn)程中完成基于http網(wǎng)絡(luò)訪(fǎng)問(wèn), 當(dāng)訪(fǎng)問(wèn)成功或者失敗,就會(huì)分別回調(diào)onResponse或onFailure方法,這兩個(gè)方法是在主線(xiàn)程中完成回調(diào)的,所以可以更新UI。 我已將這套Http工具類(lèi)的源代碼,開(kāi)源上傳至github,地址如下:https://github.com/zzrv5/ZZRHttp

3.鴻蒙Http請(qǐng)求操作步驟:

3.1 添加網(wǎng)絡(luò)訪(fǎng)問(wèn)權(quán)限:
在config.json文件中的module中添加,網(wǎng)絡(luò)訪(fǎng)問(wèn)權(quán)限,代碼如下所示:

    "module": {
        "reqPermissions": [{"name":"ohos.permission.INTERNET"}],
        ...

3.2 設(shè)置訪(fǎng)問(wèn)模式
鴻蒙的默認(rèn)是https訪(fǎng)問(wèn)模式,如果您的請(qǐng)求網(wǎng)址是http開(kāi)頭的,請(qǐng)?jiān)赾onfig.json文件中的deviceConfig下,添加如下設(shè)置:

    "deviceConfig": {
        "default": {
            "network": {
                "cleartextTraffic": true
            }
        }
    },

3.3 添加ZZRHttp依賴(lài)

在build.gradle文件的dependencies中,添加如下配置,引入ZZRhttp:

    dependencies {
        implementation 'com.zzrv5.zzrhttp:ZZRHttp:1.0.1'
        ...
    }

3.4 進(jìn)行網(wǎng)絡(luò)訪(fǎng)問(wèn)

就是這么簡(jiǎn)單,代碼如下:

    ZZRHttp.get(url, new ZZRCallBack.CallBackString() {
            @Override
            public void onFailure(int code, String errorMessage) {
                //http訪(fǎng)問(wèn)出錯(cuò),此部分在主線(xiàn)程中工作,可以更新UI等操做。
            }
            @Override
            public void onResponse(String response) {
                //http訪(fǎng)問(wèn)成功,此部分在主線(xiàn)程中工作,可以更新UI等操作。
            }
    });

編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • HTTP
    +關(guān)注

    關(guān)注

    0

    文章

    525

    瀏覽量

    33499
  • 鴻蒙系統(tǒng)
    +關(guān)注

    關(guān)注

    183

    文章

    2642

    瀏覽量

    68082
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于Java開(kāi)發(fā)的鴻蒙網(wǎng)絡(luò)訪(fǎng)問(wèn)方面的代碼

    網(wǎng)絡(luò)請(qǐng)求吧。 本文會(huì)從Java原生訪(fǎng)問(wèn)入手,進(jìn)而再使用Retrofit訪(fǎng)問(wèn)網(wǎng)絡(luò),可以滿(mǎn)足絕大部分開(kāi)發(fā)者對(duì)于鴻蒙
    的頭像 發(fā)表于 10-16 10:40 ?2904次閱讀

    Linux搭建簡(jiǎn)易的HTTP服務(wù)器完成圖片顯示

    這篇文章作為L(zhǎng)inuxsocket(TCP)網(wǎng)絡(luò)編程的練習(xí),使用C語(yǔ)言代碼搭建一個(gè)簡(jiǎn)單的HTTP服務(wù)器,完成與瀏覽器之間的交互,最終在瀏覽器上顯示一張圖片;通過(guò)這個(gè)例子可以鞏固soc
    的頭像 發(fā)表于 08-13 14:17 ?2457次閱讀
    Linux<b class='flag-5'>下</b>搭建簡(jiǎn)易的<b class='flag-5'>HTTP</b>服務(wù)器<b class='flag-5'>完成</b>圖片顯示

    鴻蒙網(wǎng)絡(luò)開(kāi)發(fā)學(xué)習(xí):【ylong_http

    ylong_http 構(gòu)建了完整的 HTTP 能力,支持用戶(hù)使用 HTTP 能力完成通信場(chǎng)景的需求。 ylong_http 使用 Ru
    的頭像 發(fā)表于 03-25 16:36 ?965次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>網(wǎng)絡(luò)</b>開(kāi)發(fā)學(xué)習(xí):【ylong_<b class='flag-5'>http</b>】

    【HarmonyOS】鴻蒙系統(tǒng)介紹 和 編譯環(huán)境搭建

    還沒(méi)有完成移植工作。1.3 相關(guān)資料鴻蒙官方文檔:https://www.harmonyos.com/cn/develop 鴻蒙gitee:https://openharmony.gitee.com
    發(fā)表于 10-20 11:19

    鴻蒙系統(tǒng)———環(huán)境搭建之實(shí)現(xiàn)網(wǎng)絡(luò)共享

    些不習(xí)慣,時(shí)間確實(shí)太趕,但是現(xiàn)在鴻蒙的HiSpark AI Camera只能在linux編譯,所以要深入學(xué)習(xí),只能先搭建linux系統(tǒng),一切抱著以學(xué)習(xí)的心態(tài)在慢慢摸索前行,在W7系統(tǒng)用VM搭建
    發(fā)表于 01-08 09:42

    HarmonyOS應(yīng)用開(kāi)發(fā)-網(wǎng)絡(luò)訪(fǎng)問(wèn)工具的使用體驗(yàn)

    ;ohos.permission.INTERNET"}],...鴻蒙的默認(rèn)是https訪(fǎng)問(wèn)模式,如果您的請(qǐng)求網(wǎng)址是http開(kāi)頭的,請(qǐng)?jiān)赾onfig.json文件中的deviceConfig
    發(fā)表于 09-24 10:07

    分布式環(huán)境的Web資源訪(fǎng)問(wèn)控制研究

    針對(duì)分布式環(huán)境Web 資源安全訪(fǎng)問(wèn)控制,給出了一種系統(tǒng)的設(shè)計(jì)方案。該系統(tǒng)滿(mǎn)足了統(tǒng)一授權(quán)和訪(fǎng)問(wèn)控制的需求,具有安全性好、靈活性高、便于管理等特點(diǎn)。同時(shí),還提出了一
    發(fā)表于 08-26 11:18 ?20次下載

    用Cisco路由器HTTP訪(fǎng)問(wèn)

    CCIE學(xué)習(xí)指南實(shí)驗(yàn)室操作:用Cisco路由器HTTP訪(fǎng)問(wèn)
    發(fā)表于 05-10 17:22 ?0次下載

    如何在C語(yǔ)言環(huán)境對(duì)其訪(fǎng)問(wèn)歸納

    單片機(jī)的特殊功能寄存器SFR,是SRAM地址已經(jīng)確定的SRAM單元,在C語(yǔ)言環(huán)境對(duì)其訪(fǎng)問(wèn)歸納起來(lái)有兩種方法。
    的頭像 發(fā)表于 02-17 15:34 ?926次閱讀

    OpenHarmony上使用的Http網(wǎng)絡(luò)框架教程

    簡(jiǎn)介 鴻蒙上使用的Http網(wǎng)絡(luò)框架,里面包含純Java實(shí)現(xiàn)的HttpNet,類(lèi)似okhttp使用,支持同步和異步兩種請(qǐng)求方式;還有鴻蒙版retrofit,和Android版Retrof
    發(fā)表于 04-12 11:13 ?4次下載

    Linux搭建簡(jiǎn)易的HTTP服務(wù)器完成圖片顯示

    這篇文章作為L(zhǎng)inuxsocket(TCP)網(wǎng)絡(luò)編程的練習(xí),使用C語(yǔ)言代碼搭建一個(gè)簡(jiǎn)單的HTTP服務(wù)器,完成與瀏覽器之間的交互,最終在瀏覽器上顯示一張圖片;通過(guò)這個(gè)例子可以鞏固soc
    的頭像 發(fā)表于 08-14 09:21 ?1451次閱讀

    鴻蒙開(kāi)發(fā)實(shí)戰(zhàn):【ylong_http】解析

    ylong_http 構(gòu)建了完整的 HTTP 能力,支持用戶(hù)使用 HTTP 能力完成通信場(chǎng)景的需求。
    的頭像 發(fā)表于 03-12 16:57 ?911次閱讀
    <b class='flag-5'>鴻蒙</b>開(kāi)發(fā)實(shí)戰(zhàn):【ylong_<b class='flag-5'>http</b>】解析

    鴻蒙OpenHarmony【 配置遠(yuǎn)程訪(fǎng)問(wèn)環(huán)境

    在搭建了Windows和Ubuntu開(kāi)發(fā)環(huán)境后,需要通過(guò)下述設(shè)置,使得Windows可以遠(yuǎn)程訪(fǎng)問(wèn)Ubuntu,為后續(xù)燒錄文件的傳輸做好準(zhǔn)備。
    的頭像 發(fā)表于 04-19 20:08 ?1056次閱讀
    <b class='flag-5'>鴻蒙</b>OpenHarmony【 配置遠(yuǎn)程<b class='flag-5'>訪(fǎng)問(wèn)</b><b class='flag-5'>環(huán)境</b>】

    HTTP協(xié)議的海外網(wǎng)絡(luò)暢游:安全與效率的雙重保障

    在全球化日益加深的今天,HTTP協(xié)議作為互聯(lián)網(wǎng)上最為廣泛使用的通信協(xié)議之一,為海外網(wǎng)絡(luò)暢游提供了重要的技術(shù)支持。在HTTP協(xié)議,海外網(wǎng)絡(luò)
    的頭像 發(fā)表于 09-24 08:08 ?416次閱讀

    HTTP海外訪(fǎng)問(wèn)優(yōu)化:提升跨國(guó)網(wǎng)絡(luò)性能的秘訣

    HTTP海外訪(fǎng)問(wèn)優(yōu)化是提升跨國(guó)網(wǎng)絡(luò)性能的關(guān)鍵,涉及多個(gè)方面的技術(shù)和策略。
    的頭像 發(fā)表于 10-15 08:04 ?708次閱讀