在鸿蒙(HarmonyOS)环境下,优雅的完成Http访问网络【教程】
上一篇 /
下一篇 2020-10-09 09:46:59
1.原始的网络访问,再加上多线程,会使程序臃肿
网络请求在现代的应用开发中必不可少,我们熟知的网络请求框架还真不少,像HttpCient、HttpCient还有volley等,它们确实方便但
鸿蒙还不能使用它们,还好我们有HttpURLConnection。使用其进行网络请求的示例代码,如下图所示(不用仔细研究):
相信你想说:HttpURLConnection虽略有繁琐,但能用。然而,这并不是我们要处理网络访问的全部。因为网络操作耗时及不稳定性,使得我们必须在子线程中进行上述代码的工作,等到网络请求有响应结果了,我们又需要回到主线程更新UI,这又使得我们的程序又胖了一圈。如果请求,再多一点呢?我们的程序就胖了好几圈...
2.将多线程与网络访问封装,为程序瘦身
我们希望的网络请求是这样的:1.隐藏网络访问细节;2.优雅处理UI更新。
基于以上两点,我封装了一套Http请求的工具类,最终的网络访问会变成——这样:
ZZRHttp.get(url, new ZZRCallBack.CallBackString() { @Override public void onFailure(int code, String errorMessage) { //http访问出错,此部分在主线程中工作,可以更新UI等操做。 } @Override public void onResponse(String response) { //http访问成功,此部分在主线程中工作,可以更新UI等操作。 } }); |
代码解析:此get方法能够在子线程中完成基于http网络访问, 当访问成功或者失败,就会分别回调onResponse或onFailure方法,这两个方法是在主线程中完成回调的,所以可以更新UI。
我已将这套Http工具类的源代码,开源上传至github,地址如下:https://github.com/zzrv5/ZZRHttp
3.鸿蒙Http请求操作步骤:
3.1 添加网络访问权限:
在config.json文件中的module中添加,网络访问权限,代码如下所示:
"module": { "reqPermissions": [{"name":"ohos.permission.INTERNET"}], ... |
3.2 设置访问模式
鸿蒙的默认是https访问模式,如果您的请求网址是http开头的,请在config.json文件中的deviceConfig下,添加如下设置:
"deviceConfig": { "default": { "network": { "cleartextTraffic": true } } }, |
3.3 添加ZZRHttp依赖
在build.gradle文件的dependencies中,添加如下配置,引入ZZRhttp:
dependencies { implementation 'com.zzrv5.zzrhttp:ZZRHttp:1.0.1' ... } |
3.4 进行网络访问
就是这么简单,代码如下:
ZZRHttp.get(url, new ZZRCallBack.CallBackString() { @Override public void onFailure(int code, String errorMessage) { //http访问出错,此部分在主线程中工作,可以更新UI等操做。 } @Override public void onResponse(String response) { //http访问成功,此部分在主线程中工作,可以更新UI等操作。 } }); |
相关阅读:
- 合并和排序Linux上的文件 (liqianqian1116, 2020-9-02)
- 两个月新增 80万行代码,Linux 内核维护为什么不会崩? (大椿菜, 2020-8-28)
- 国产系统上线新版本,支持QQ和微信 (liqianqian1116, 2020-8-31)
- 学会这5招,让Linux排障更简单 (liqianqian1116, 2020-9-04)
- Linux Mint 新工具:将网站转变为独立的应用 (liqianqian1116, 2020-9-07)
- 在 Linux 上调整命令历史 (liqianqian1116, 2020-9-10)
- 多款安卓App存在数据漏洞,鸿蒙能否后来居上? (大椿菜, 2020-9-11)
- Linux 入侵痕迹清理技巧 (liqianqian1116, 2020-9-14)
- linux实用命令之如何移动文件夹及文件下所有文件 (大椿菜, 2020-9-15)
- Linux Lab v0.5 正式发布,功能强大用法简单 (liqianqian1116, 2020-11-19)
收藏
举报
TAG:
操作系统
鸿蒙