精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

鴻蒙開源三方組件--HttpClient組件 Kalle

開源
Kalle是一個HttpClient,它遵循Http標準協(xié)議,支持同步請求和異步請求。支持GET、HEAD、OPTIONS、TRACE、POST、PUT、PATCH、DELETE請求方法。

[[414837]]

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

背景

Kalle是一個HttpClient,它遵循Http標準協(xié)議,支持同步請求和異步請求。

特性

  • 支持GET、HEAD、OPTIONS、TRACE、POST、PUT、PATCH、DELETE請求方法
  • 表單的提交,如普通字符串表單、帶文件的表單(含多文件、大文件)
  • 自定義RequestBody,如文件、字符串(JSON、XML、普通字符串)
  • 支持SSL,默認不校驗證書,開發(fā)者可以自定義證書
  • 9種緩存模式,默認使用AES算法為緩存數(shù)據(jù)加密
  • 自動管理Cookie,遵循Http協(xié)議,與瀏覽器實現(xiàn)相同原理
  • 在任何時候取消請求,如未開始、正在執(zhí)行時
  • 全局反序列化轉(zhuǎn)換器,直接請求JavaBean
  • 基于攔截器的智能重定向與智能重試
  • 支持開發(fā)者添加攔截器,例如Log打印、登錄重試、參數(shù)簽名
  • 網(wǎng)絡(luò)可用性緩存檢查法,連接層可動態(tài)替換,如URLConnection、OkHttp或者ApacheHttpClient

組件示例效果

請求列表信息

  1. Kalle.get(UrlConfig.GET_LIST) 
  2.                 .param("pageNum", PAGE_NUMBER) 
  3.                 .param("pageSize", PAGE_SIZE) 
  4.                 .tag(this) 
  5.                 .perform(new SimpleCallback<NewsWrapper>(this) { 
  6.                     @Override 
  7.                     public void onResponse(SimpleResponse<NewsWrapper, String> response) { 
  8.                         if (response.isSucceed()) { 
  9.                             NewsWrapper wrapper = response.succeed(); 
  10.                             mDataList = wrapper.getDataList(); 
  11.                             mPage = wrapper.getPage(); 
  12.                             ListContainer listContainer = (ListContainer) findComponentById(ResourceTable.Id_normal_list_container); 
  13.                             MainItemProvider sampleItemProvider = new MainItemProvider(mDataList, NormalAbilitySlice.this); 
  14.                             listContainer.setItemProvider(sampleItemProvider); 
  15.                         } else { 
  16.                             new ToastDialog(NormalAbilitySlice.this) 
  17.                                     .setText(UrlConfig.GET_LIST + " response failed: " + response.failed()) 
  18.                                     .setAlignment(LayoutAlignment.CENTER) 
  19.                                     .show(); 
  20.                         } 
  21.                     } 
  22.                 }); 

上傳文件

  1. Kalle.post(UrlConfig.UPLOAD_BODY_FILE) 
  2.                 .urlParam("filename", file.getName()) 
  3.                 .body(new FileBody(file)) 
  4.                 .tag(this) 
  5.                 .perform(new DialogCallback<BodyInfo>(this) { 
  6.                     @Override 
  7.                     public void onResponse(SimpleResponse<BodyInfo, String> response) { 
  8.                         if (response.isSucceed()) { 
  9.                             bodyItems = null
  10.                             statusBtn.setText(uploadResultStr); 
  11.                         } else { 
  12.                             new ToastDialog(BodyAbilitySlice.this) 
  13.                                     .setText("you clicked:" + response.failed()) 
  14.                                     .setAlignment(LayoutAlignment.CENTER) 
  15.                                     .show(); 
  16.                         } 
  17.                     } 
  18.                 }); 

下載文件

  1. Kalle.Download.get(UrlConfig.DOWNLOAD) 
  2.                     .directory(AppConfig.get().PATH_APP_DOWNLOAD) 
  3.                     .fileName("sou.apk"
  4.                     .onProgress(new Download.ProgressBar() { 
  5.                         @Override 
  6.                         public void onProgress(int progress, long byteCount, long speed) throws NotExistException, WrongTypeException, IOException { 
  7.                             BigDecimal bg = new BigDecimal(speed / BYTE_NUMBER / BYTE_NUMBER); 
  8.                             String speedText = bg.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString(); 
  9.                             String downloadSpeed = resourceManager.getElement(ResourceTable.String_download_speed).getString(); 
  10.                             speedText = String.format(downloadSpeed, speedText); 
  11.                             viewSetProgress(progress, speedText); 
  12.                         } 
  13.                     }) 
  14.                     .perform(new DownloadCallback1(this)); 

如何使用

配置

如果需要,我們可以做一些個性化的配置,但是所有的配置項都不是必須的。

配置的Api如下:

  1. private void kalle() { 
  2.         Kalle.setConfig(KalleConfig.newBuilder() 
  3.                 .connectFactory(OkHttpConnectFactory.newBuilder().build()) 
  4.                 .cookieStore(DBCookieStore.newBuilder(this).build()) 
  5.                 .cacheStore(DiskCacheStore.newBuilder(AppConfig.get().PATH_APP_CACHE).build()) 
  6.                 .network(new BroadcastNetwork(this)) 
  7.                 .addInterceptor(new LoginInterceptor()) 
  8.                 .addInterceptor(new LoggerInterceptor("KalleSample", BuildConfig.DEBUG)) 
  9.                 .converter(new JsonConverter(this)) 
  10.                 .build()); 

連接

Kalle是一個完全獨立的網(wǎng)絡(luò)庫,它不限制任何實現(xiàn)Http協(xié)議底層連接庫,因此它允許開發(fā)者自行決定使用何種底層連接庫,比如URLConnection、OkHttp、HttpClient。為了減小編譯后Kalle的大小,Kalle默認提供了基于URLConnection的底層連接庫(因為URLConnction是Java默認自帶的),同時實現(xiàn)了基于OkHttp`的備用的底層連接庫,有興趣的開發(fā)者可以自行實現(xiàn)基于其它項目的底層連接庫。

Http請求

Http請求從請求方法上可以分為兩大類,我們把它們稱為Url類請求(UrlRequest)和Body類請求(BodyRequest),因為一類只可以是簡單的url,而另一類不僅僅可以是簡單的url,也可以使用流來發(fā)送自定義RequestBody。

Url類的請求方法:

  1. GET, HEAD, OPTIONS, TRACE 

Body類的請求方法:

  1. POST, PUT, DELETE, PATCH 

對于Url類請求,需要構(gòu)建UrlRequest,例如下面這段代碼構(gòu)建的UrlRequest,最終的url是http://www.example.com?name=kalle&password=123:

  1. Url.Builder url = Url.newBuilder("http://www.example.com"); 
  2. UrlRequest urlRequest = UrlRequest.newBuilder(url, RequestMethod.GET) 
  3.     .param("name", kalle) 
  4.     .param("password", 123) 
  5.     .build(); 

BodyRequest的用法和UrlRequest基本是完全一致的:

  1. Url.Builder url = Url.newBuilder("http://www.example.com"); 
  2. BodyRequest bodyRequest = BodyRequest.newBuilder(url, RequestMethod.GET) 
  3.     .param("name", kalle) 
  4.     .param("password", 123) 
  5.     .build(); 

進度

進度監(jiān)聽一般用于Body類型的請求,一般用于表單文件上傳、PUSH自定義RequestBody等。

基于表單時我們可以監(jiān)聽某個文件的上傳進度,也可以監(jiān)聽整個表單的發(fā)送進度:

  1. FileBinary header = new FileBinary(new File("/sdcard/header.jpg")) 
  2.     .onProgress(new OnProgress<FileBinary>() { 
  3.         @Override 
  4.         public void progress(FileBinary origin, int progress) { 
  5.             // 文件1的進度:progress. 
  6.         } 
  7.     }); 
  8. FileBinary banner = new FileBinary(new File("/sdcard/banner.jpg")) 
  9.     .onProgress(new OnProgress<FileBinary>() { 
  10.         @Override 
  11.         public void progress(FileBinary origin, int progress) { 
  12.             // 文件2的進度:progress. 
  13.         } 
  14.     }); 
  15.  
  16. FormBody formBody = FormBody.newBuilder() 
  17.     .param("name""kalle"
  18.     .param("age", 18) 
  19.     .binary("header", header) 
  20.     .binary("banner", banner) 
  21.     .build(); 
  22. formBody.onProgress(new OnProgress<FormBody>() { 
  23.     @Override 
  24.     public void progress(FormBody origin, int progress) { 
  25.         // 整體進度:progress. 
  26.     } 
  27. }); 
  28.  
  29. Kalle.post(UrlConfig.UPLOAD_BODY_FILE) 
  30.     .urlParam("filename""qq.apk"
  31.     .body(formBody) 
  32.     .perform(...); 

集成方式

自行編譯工程entity、yoga、yoga_layout、fb生成libyoga.so、libfb.so、libyogacore.so

將其添加到要集成的libs文件夾內(nèi),在entity的gradle內(nèi)添加如下代碼。

方式一:

通過library生成har包,添加har包到libs文件夾內(nèi)。

在entry的gradle內(nèi)添加如下代碼:

  1. implementation fileTree(dir:'libs', include:['*.jar','*.har']) 

方式二:

  1. allprojects{ 
  2.     repositories{ 
  3.         mavenCentral() 
  4.     } 
  5. implementation 'io.github.dzsf:kalle:1.0.0' 
  6. implementation 'io.github.dzsf:okalle:1.0.0' 

復制附錄1:相關(guān)資料

IDE官方下載地址:https://developer.harmonyos.com/cn/develop/deveco-studio

原組件GitBook地址:https://yanzhenjie.com/Kalle

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區(qū)
相關(guān)推薦

2021-08-09 10:24:49

鴻蒙HarmonyOS應用

2021-03-10 15:03:40

鴻蒙HarmonyOS應用

2021-04-29 14:32:24

鴻蒙HarmonyOS應用

2021-08-03 12:47:58

鴻蒙HarmonyOS應用

2021-04-28 15:07:06

鴻蒙HarmonyOS應用

2021-03-24 09:30:49

鴻蒙HarmonyOS應用

2021-04-28 09:56:44

鴻蒙HarmonyOS應用

2021-08-04 14:16:41

鴻蒙HarmonyOS應用

2021-08-26 16:07:46

鴻蒙HarmonyOS應用

2021-08-03 10:07:41

鴻蒙HarmonyOS應用

2021-04-20 15:06:42

鴻蒙HarmonyOS應用

2021-08-30 17:55:58

鴻蒙HarmonyOS應用

2021-04-08 14:57:52

鴻蒙HarmonyOS應用

2021-07-06 18:21:31

鴻蒙HarmonyOS應用

2021-08-05 15:06:30

鴻蒙HarmonyOS應用

2021-03-03 09:42:26

鴻蒙HarmonyOS圖片裁剪

2021-03-01 14:00:11

鴻蒙HarmonyOS應用

2021-11-17 15:37:43

鴻蒙HarmonyOS應用

2021-07-20 15:20:40

鴻蒙HarmonyOS應用

2021-04-15 17:47:38

鴻蒙HarmonyOS應用
點贊
收藏

51CTO技術(shù)棧公眾號

三级资源在线| 涩涩视频在线观看| 成人h动漫免费观看网站| 亚洲日本丝袜连裤袜办公室| 成人午夜在线观看| www久久久久久久| 日本免费一区二区六区| 久久久天堂av| 成人a在线视频| 日韩在线中文字幕视频| 91蝌蚪精品视频| 精品国产乱码久久久久久虫虫漫画| 久久久久综合一区二区三区| 波多野结衣黄色网址| 久久中文字幕二区| 精品久久久久久亚洲综合网| 欧美综合在线播放| 国产区av在线| 国产在线精品免费| 久久久女人电视剧免费播放下载| 人妻丰满熟妇av无码久久洗澡| 91精品美女| 亚洲综合一区二区| 久久久久久a亚洲欧洲aⅴ| 色屁屁影院www国产高清麻豆| 99re6这里只有精品| 精品剧情在线观看| 亚欧在线免费观看| 日本中文字幕中出在线| 久久综合视频网| 天堂资源最新在线| 久久一本综合| 精品卡一卡二卡三卡四在线| 50路60路老熟妇啪啪| 日本三级在线播放完整版| 成人国产精品免费观看| 国产精品亚洲欧美导航| 日本在线视频免费| 欧美高清视频手机在在线| 亚洲成色777777在线观看影院 | 免费观看不卡av| 欧美日韩久久一区| 欧美综合在线播放| jizzjizz亚洲| 中文字幕精品在线不卡| 国内视频一区| 国产人妖一区二区| 蜜臀va亚洲va欧美va天堂| 国模精品视频一区二区| 日韩国产第一页| 欧美久久精品一级c片| 亚洲国产精品嫩草影院久久| 精品综合久久久久| 欧美日韩在线精品一区二区三区激情综合 | 欧美一区二区三区成人片在线| 日韩国产高清影视| 2019精品视频| 久久免费小视频| 精品大片一区二区| 亚洲男人的天堂在线| 黄色性视频网站| 精品国产亚洲一区二区三区在线| 精品久久久久久久久中文字幕 | 国产精品videosex极品| 久久av.com| 男人舔女人下部高潮全视频| 美女福利一区| 亚洲成人性视频| 国产chinese中国hdxxxx| 香港久久久电影| 日韩一区二区三区四区| 手机在线国产视频| 一区二区三区无毛| 6080午夜不卡| 波多野结衣在线免费观看| 青草综合视频| 欧美精品久久99久久在免费线 | 91 在线视频| 99精品小视频| 久久久国产精品亚洲一区| 你懂得视频在线观看| 欧美亚洲精品在线| 色系列之999| 少妇一级黄色片| 免费一区二区| 国产亚洲视频在线观看| www在线观看免费视频| 禁果av一区二区三区| 亚洲男人的天堂在线| 老头老太做爰xxx视频| 国产精品一区二区99| 中文字幕在线观看日韩| 欧美h片在线观看| 欧美激情亚洲| 久久人人爽国产| 国产精品视频免费播放| 日韩精品91亚洲二区在线观看| 国产精品成人aaaaa网站| 在线播放一级片| 国产精品1024| 久久九九视频| 米奇777四色精品人人爽| 亚洲欧美日韩精品久久久久| 800av在线免费观看| 色偷偷偷在线视频播放| 欧洲精品一区二区| 天天操夜夜操很很操| 99re8这里有精品热视频免费| 亚洲国产97在线精品一区| 国产熟妇搡bbbb搡bbbb| 亚洲区小说区| 久久久精品一区二区| 国产真实乱人偷精品视频| 亚洲尤物影院| 91久热免费在线视频| 亚洲国产福利视频| 国产日产欧美一区| 欧美极品少妇无套实战| 美女100%一区| 精品欧美一区二区在线观看| 中文字幕高清视频| 亚洲精品在线观看91| 51精品国产黑色丝袜高跟鞋| 国产精品人人妻人人爽| 99国产麻豆精品| 一区二区三区四区五区视频| gogo高清在线播放免费| 欧美性xxxxxxxx| 大尺度做爰床戏呻吟舒畅| 日韩夫妻性生活xx| 97av在线视频| 国产特级黄色片| 久久久亚洲精品石原莉奈| 最新视频 - x88av| 精品视频在线一区二区在线| 亚洲国产精彩中文乱码av在线播放 | www.18av.com| 日本精品裸体写真集在线观看| 日韩欧美国产综合一区 | 黄色一区二区视频| 成人午夜视频在线| 99精品视频网站| 日韩欧美看国产| 亚洲国产精品国自产拍av秋霞| 91ts人妖另类精品系列| 久久久久久久尹人综合网亚洲| av观看久久| 免费在线观看av网站| 色香色香欲天天天影视综合网| 国产在线不卡av| 亚洲午夜精品一区 二区 三区| 国产精品黄视频| 国产一区二区在线不卡| 欧美极品少妇xxxxⅹ高跟鞋| 亚洲午夜精品久久久久久人妖| 香蕉大人久久国产成人av| 日韩中文字幕免费| 欧美视频xxxx| 久久久91精品国产一区二区三区| 国产素人在线观看| 精品女人视频| 国内伊人久久久久久网站视频 | 亚洲一区二区在| 成人啊v在线| 亚洲人成绝费网站色www| 一级免费在线观看| 99热这里都是精品| 免费av手机在线观看| 久久精品福利| 欧美国产精品va在线观看| 91精品国产色综合久久不8| 欧美国产1区2区| 国产精品视频黄色| 欧美日韩国产一区二区三区不卡| 国产精品va在线播放| 国产精品久久久久一区二区国产| 五月天亚洲精品| 亚洲av网址在线| 久久一日本道色综合久久| 欧美久久在线| 91亚洲精品| www欧美日韩| 国产高清免费观看| 一区二区三区欧美激情| 成人欧美精品一区二区| 精品福利av| 欧美久久久久久| 国产极品嫩模在线观看91精品| 日韩中文在线中文网三级| 国产欧美日韩综合精品一区二区三区| 亚洲精品第一国产综合野| 一区二区久久精品| 亚洲国产精品久久久久蝴蝶传媒| 91精品视频在线播放| 中文字幕在线三区| 国产视频在线一区二区| 在线观看亚洲一区二区| 一区二区三区中文字幕| 在线黄色免费网站| 天使萌一区二区三区免费观看| 日韩一区不卡| 一区二区三区免费在线看| 91国产视频在线| 精品欧美不卡一区二区在线观看| 欧美日韩国产乱码电影| 久久久久久久国产视频| 91在线精品一区二区三区| 午夜dv内射一区二区| 中文在线日韩| 久久精品日韩精品| 日韩欧乱色一区二区三区在线| 欧美日本亚洲视频| 亚洲人视频在线观看| 欧美日韩一区中文字幕| 久青草视频在线观看| 久久久91精品国产一区二区三区| 少妇性l交大片7724com| 天堂精品中文字幕在线| www.亚洲成人网| av资源久久| 精品久久sese| 国产精品欧美一区二区三区不卡| 欧美一级视频免费在线观看| 爆操欧美美女| 亚洲欧美制服另类日韩| aaa级黄色片| 在线中文字幕一区| 国产91av视频| 亚洲色图另类专区| 美女脱光内衣内裤| 成人美女视频在线观看18| 能在线观看的av| 国产综合网站| 一区二区不卡在线观看| 首页亚洲中字| 国产美女99p| 激情综合五月| 国产91精品久久久| 人人澡人人添人人爽一区二区| 亚洲小视频在线观看| 天堂中文在线视频| 精品1区2区在线观看| 中文字幕xxxx| 精品久久久久久久久久久久| 九九在线观看视频| 自拍偷拍亚洲综合| 超碰97av在线| 久久精品网站免费观看| 国产又爽又黄无码无遮挡在线观看| 岛国精品一区二区| 曰本三级日本三级日本三级| 国内精品免费在线观看| 久热精品在线播放| 日韩精品国产精品| 爱情岛论坛成人| 日本欧美一区二区三区乱码| 欧美午夜性视频| 欧美色图首页| 91免费国产精品| 亚洲最新av| 中国黄色录像片| 亚洲美女视频| 在线无限看免费粉色视频| 成人写真视频| 亚洲国产欧美不卡在线观看| 国内成人自拍| 日韩欧美电影一区二区| 狠狠综合久久av一区二区蜜桃| 欧美一区1区三区3区公司| 九九久久电影| 色综合久久久久久久久五月| 欧美肉体xxxx裸体137大胆| 日韩免费中文专区| 精品一区二区三区的国产在线观看| 日韩三级在线播放| 欧美亚洲国产精品久久| 一区二区日本伦理| 久久精品影视| 日韩中文一区| 欧美wwwww| dy888午夜| 亚洲欧美亚洲| 日韩av综合在线观看| 国内成人在线| 欧美激情国产精品日韩| 久久亚洲精品伦理| 亚欧美在线观看| 国产麻豆精品视频| 少妇精品无码一区二区三区| 久久久亚洲欧洲日产国码αv| xxx在线播放| 国产精品久久久久影院亚瑟| 欧美成人777| 午夜精品久久久久久久蜜桃app| 伊人中文字幕在线观看| 欧美在线免费观看亚洲| 国产精品久久久久久久免费| 欧美日韩大陆在线| 欧美一区二区在线观看视频| 亚洲色图50p| av在线播放网| 色综合五月天导航| 在线最新版中文在线| 国产主播喷水一区二区| 岛国成人av| 五码日韩精品一区二区三区视频| 欧美日韩国产探花| aⅴ在线免费观看| 国产一区二区中文字幕| 超碰caoprom| 国产精品女同互慰在线看| 久久精品国产亚洲AV无码男同| 色综合欧美在线| 国产区精品在线| 亚洲视频免费一区| 欧美一卡二卡| 国产精品普通话| 成人在线tv视频| 亚洲人成亚洲人成在线观看| 高h视频在线观看| 国产精品私拍pans大尺度在线 | 天海翼一区二区| 欧美一区三区二区| 午夜激情在线观看| 国产精品99久久久久久白浆小说| 精品国产乱子伦一区二区| 国产精品8888| 国产一区二区三区香蕉| 色www亚洲国产阿娇yao| 色8久久精品久久久久久蜜| 午夜激情在线视频| 97碰碰碰免费色视频| 中文字幕一区二区三区四区久久 | 日韩网站在线| 中文字幕永久免费| 亚洲一区二区偷拍精品| av小说天堂网| 久久成人精品电影| 爱情电影网av一区二区| 致1999电视剧免费观看策驰影院| 秋霞国产午夜精品免费视频| 变态另类ts人妖一区二区| 色美美综合视频| 国产系列电影在线播放网址| 日韩美女免费线视频| 亚洲欧洲色图| 福利在线一区二区三区| 中文字幕av一区 二区| 中文av免费观看| 中文字幕精品av| 欧美少妇激情| 只有这里有精品| 国产精品一区二区三区网站| 青青操国产视频| 精品av久久707| 亚洲黄色免费av| 日韩三级电影免费观看| 奇米影视7777精品一区二区| 久久久久久成人网| 666欧美在线视频| 国产乱码在线| 欧美韩国日本精品一区二区三区| 美女国产一区| 一二三四在线观看视频| 91精品久久久久久久久99蜜臂| 日本电影在线观看| 久久久久se| 麻豆一区二区99久久久久| 91视频青青草| 日韩av影视综合网| japanese23hdxxxx日韩| 正在播放久久| 成人一区二区三区中文字幕| 特级西西444www大精品视频免费看| 亚洲欧美在线免费观看| 日韩黄色三级在线观看| 97干在线视频| 久久久99久久| www.成人免费视频| 欧美一级大片在线免费观看| 日韩在线视屏| 午夜福利三级理论电影| 色婷婷国产精品| 国产一区久久精品| 99re国产| 老色鬼久久亚洲一区二区| 国语对白在线播放| 日韩av在线免费观看| 国产亚洲欧美日韩精品一区二区三区 | 欧美黄色视屏| 日韩精品资源| 暴力调教一区二区三区| 在线免费看av的网站| 韩国一区二区电影| 四季av一区二区凹凸精品| 国产精品扒开腿做爽爽爽a片唱戏| 在线看国产一区二区| 青草av在线| 亚洲一区二区三区精品在线观看| av成人动漫在线观看|