成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在鴻蒙(HarmonyOS)環境下,優雅的完成Http訪問網絡【教程】

系統 OpenHarmony
網絡請求在現代的應用開發中必不可少,我們熟知的網絡請求框架還真不少,像HttpClient、OkHttp還有volley等,它們確實方便但鴻蒙還不能使用它們,還好我們有HttpURLConnection。

[[350592]]

想了解更多內容,請訪問:
51CTO和華為官方合作共建的鴻蒙技術社區
https://harmonyos.51cto.com

1 .原始的網絡訪問,再加上多線程,會使程序臃腫

網絡請求在現代的應用開發中必不可少,我們熟知的網絡請求框架還真不少,像HttpClient、OkHttp還有volley等,它們確實方便但鴻蒙還不能使用它們,還好我們有HttpURLConnection。使用其進行網絡請求的示例代碼,如下圖所示(不用仔細研究):

相信你想說:HttpURLConnection雖略有繁瑣,但能用。然而,這并不是我們要處理網絡訪問的全部。因為網絡操作耗時及不穩定性,使得我們必須在子線程中進行上述代碼的工作,等到網絡請求有響應結果了,我們又需要回到主線程更新UI,這又使得我們的程序又胖了一圈。如果請求,再多一點呢?我們的程序就胖了好幾圈...

2.將多線程與網絡訪問封裝,為程序瘦身

我們希望的網絡請求是這樣的:1.隱藏網絡訪問細節;2.優雅處理UI更新。

基于以上兩點,我封裝了一套Http請求的工具類,最終的網絡訪問會變成——這樣:

  1. ZZRHttp.get(url, new ZZRCallBack.CallBackString() { 
  2.           @Override 
  3.           public void onFailure(int code, String errorMessage) { 
  4.               //http訪問出錯,此部分在主線程中工作,可以更新UI等操做。 
  5.           } 
  6.           @Override 
  7.           public void onResponse(String response) { 
  8.               //http訪問成功,此部分在主線程中工作,可以更新UI等操作。 
  9.           } 
  10.   }); 

代碼解析:此get方法能夠在子線程中完成基于http網絡訪問, 當訪問成功或者失敗,就會分別回調onResponse或onFailure方法,這兩個方法是在主線程中完成回調的,所以可以更新UI。

我已將這套Http工具類的源代碼,開源上傳至github,地址如下:https://github.com/zzrv5/ZZRHttp

3.鴻蒙Http請求操作步驟:

3.1 添加網絡訪問權限:

在config.json文件中的module中添加,網絡訪問權限,代碼如下所示:

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

 3.2 設置訪問模式

鴻蒙的默認是https訪問模式,如果您的請求網址是http開頭的,請在config.json文件中的deviceConfig下,添加如下設置:

  1. "deviceConfig": { 
  2.      "default": { 
  3.          "network": { 
  4.              "cleartextTraffic"true 
  5.          } 
  6.      } 
  7.  }, 

 3.3 添加ZZRHttp依賴

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

  1. dependencies { 
  2.        implementation 'com.zzrv5.zzrhttp:ZZRHttp:1.0.1' 
  3.        ... 
  4.    } 

 3.4 進行網絡訪問

就是這么簡單,代碼如下:

  1. ZZRHttp.get(url, new ZZRCallBack.CallBackString() { 
  2.            @Override 
  3.            public void onFailure(int code, String errorMessage) { 
  4.                //http訪問出錯,此部分在主線程中工作,可以更新UI等操做。 
  5.            } 
  6.            @Override 
  7.            public void onResponse(String response) { 
  8.                //http訪問成功,此部分在主線程中工作,可以更新UI等操作。 
  9.            } 
  10.    }); 

 4.關于我

我是ZZR老師,為什么叫ZZR老師,是因為ZZR是我名字的縮寫,同學們可以在: https://edu.51cto.com/course/25200.html ,看到我的鴻蒙視頻課程。

想了解更多內容,請訪問:
51CTO和華為官方合作共建的鴻蒙技術社區
https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2020-10-09 12:25:42

鴻蒙

2024-03-29 12:11:46

2010-09-25 09:31:27

EclipseAndroid

2010-06-11 13:22:32

2010-06-10 10:57:57

2010-05-13 14:27:52

訪問MySQL

2021-07-21 09:50:35

Linux腳本命令

2020-11-24 11:58:19

HarmonyOS

2018-10-09 09:15:44

服務器IP地址遠程訪問

2022-09-01 13:12:53

LinuxTC網絡限流

2011-09-01 19:06:57

UbuntuLua安裝環境

2020-12-30 09:55:56

鴻蒙HarmonyOS環境搭建

2009-07-24 14:15:51

數據訪問層

2022-05-10 10:09:12

KubernetesPod網絡抓包

2020-10-12 11:33:00

鴻蒙

2015-07-17 12:04:54

SDN間歇性訪問

2010-09-17 11:01:05

Java運行環境

2011-10-31 15:59:56

SQLiteiPhoneiOS

2019-01-27 14:37:47

數據HTTP服務

2011-03-28 10:42:00

Spring
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 999久久久| 欧美日韩国产一区二区三区 | 久草在线在线精品观看 | 91久久国产 | 欧美性猛交一区二区三区精品 | 久久精品网 | 欧美一区二区三区电影 | 国产精品久久久久久久 | 在线观看亚洲一区二区 | 中文字幕日韩三级 | 亚洲视频自拍 | 男人的天堂在线视频 | 精品99爱视频在线观看 | 欧美一级全黄 | 一区二区三区av | 亚洲精品一区在线 | 日韩精品一区二区三区在线观看 | 国产一区二 | 欧美一级欧美三级在线观看 | 欧美日韩国产高清 | 国产91视频播放 | 国产高清视频在线观看播放 | 国产一区二区三区不卡av | 精品综合久久久 | 天天干夜夜操视频 | 国产精品久久精品 | www.中文字幕.com | 一区中文字幕 | 国产视频久 | 成人在线免费视频 | 久久久人成影片免费观看 | 久久在线免费 | 欧美激情一区二区三区 | 91久久精品一区二区二区 | 国产91网站在线观看 | 欧美日本亚洲 | 国产精品久久久久国产a级 欧美日韩国产免费 | 欧美精品成人影院 | 日韩av最新网址 | 亚洲精品视频在线播放 | 亚洲成人自拍网 |