0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙环境下的Http网络访问完成设计

鸿蒙系统HarmonyOS 来源:51cto 作者:ZZR老师 2021-04-16 13:52 次阅读

1.原始的网络访问,再加上多线程,会使程序臃肿

网络请求在现代的应用开发中必不可少,我们熟知的网络请求框架还真不少,像HttpClient、OkHttp还有volley等,它们确实方便但鸿蒙还不能使用它们,还好我们有HttpURLConnection。使用其进行网络请求的示例代码,如下图所示(不用仔细研究):

o4YBAGB5JTqAB4GKAACRNw9dgwM381.png

相信你想说: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等操作。
            }
    });

编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • HTTP
    +关注

    关注

    0

    文章

    465

    浏览量

    30310
  • 鸿蒙系统
    +关注

    关注

    183

    文章

    2602

    浏览量

    65265
收藏 人收藏

    评论

    相关推荐

    基于Java开发的鸿蒙网络访问方面的代码

    网络请求吧。 本文会从Java原生访问入手,进而再使用Retrofit访问网络,可以满足绝大部分开发者对于鸿蒙
    的头像 发表于 10-16 10:40 2391次阅读

    鸿蒙网络开发学习:【ylong_http

    ylong_http 构建了完整的 HTTP 能力,支持用户使用 HTTP 能力完成通信场景的需求。 ylong_http 使用 Ru
    的头像 发表于 03-25 16:36 460次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>网络</b>开发学习:【ylong_<b class='flag-5'>http</b>】

    鸿蒙新手入门-环境准备问题解析

    ”。 解决措施 ArkTS/JS SDK下载失败,一般情况,主要是由于npm代理配置问题,或未清理npm缓存信息导致,可按照如下方法进行处理。 检查网络是否受限,如果需要通过代理才能访问
    发表于 02-18 17:44

    ASIHTTPRequest是一款极其强劲的HTTP访问开源项目

    ASIHTTPRequest是一款极其强劲的HTTP访问开源项目。让简单的API完成复杂的功能,如:异步请求,队列请求,GZIP压缩,缓存,断点续传,进度跟踪,上传文件,HTTP认证在
    发表于 07-11 07:15

    HUAWEI DevEco Studio配置开发环境

    DevEco Studio开发环境需要依赖于网络环境,需要连接上网络才能确保工具的正常使用,可以根据如下两种情况来配置开发环境:如果可以直接
    发表于 09-17 15:25

    【HarmonyOS】鸿蒙系统介绍 和 编译环境搭建

    还没有完成移植工作。1.3 相关资料鸿蒙官方文档:https://www.harmonyos.com/cn/develop 鸿蒙gitee:https://openharmony.gitee.com
    发表于 10-20 11:19

    鸿蒙系统———环境搭建之实现网络共享

    些不习惯,时间确实太赶,但是现在鸿蒙的HiSpark AI Camera只能在linux编译,所以要深入学习,只能先搭建linux系统,一切抱着以学习的心态在慢慢摸索前行,在W7系统用VM搭建
    发表于 01-08 09:42

    【全网最简】Hi3861鸿蒙开发环境搭建指南(Linux开发环境

    和串口工具是2个?为了帮助新人解决这些问题,更好的利用社区赠送的Hi3861板子学习鸿蒙,我用业余时间完成了这套野生的Hi3861鸿蒙开发环境,代号:两把枪。之所以是野生的,那是因为比
    发表于 03-04 15:01

    HarmonyOS应用开发-网络访问工具的使用体验

    ;ohos.permission.INTERNET"}],...鸿蒙的默认是https访问模式,如果您的请求网址是http开头的,请在config.json文件中的deviceConfig
    发表于 09-24 10:07

    HarmonyOS开发环境的安装与配置过程分享

    可直接访问网络环境的一样。开发环境配置完成后,可以通过运行HelloWorld工程来验证
    发表于 03-14 11:42

    HI3861 鸿蒙开发环境怎么搭建

    Hi3861的鸿蒙开发环境怎么搭建,有没详细说明交叉编译工具包在哪下载鸿蒙设备开发网上没搜索到新人刚学,请指点
    发表于 05-08 20:25

    用Cisco路由器HTTP访问

    CCIE学习指南实验室操作:用Cisco路由器HTTP访问
    发表于 05-10 17:22 0次下载

    OpenHarmony上使用的Http网络框架教程

    简介 鸿蒙上使用的Http网络框架,里面包含纯Java实现的HttpNet,类似okhttp使用,支持同步和异步两种请求方式;还有鸿蒙版retrofit,和Android版Retrof
    发表于 04-12 11:13 4次下载

    鸿蒙开发实战:【ylong_http】解析

    ylong_http 构建了完整的 HTTP 能力,支持用户使用 HTTP 能力完成通信场景的需求。
    的头像 发表于 03-12 16:57 288次阅读
    <b class='flag-5'>鸿蒙</b>开发实战:【ylong_<b class='flag-5'>http</b>】解析

    鸿蒙OpenHarmony【 配置远程访问环境

    在搭建了Windows和Ubuntu开发环境后,需要通过下述设置,使得Windows可以远程访问Ubuntu,为后续烧录文件的传输做好准备。
    的头像 发表于 04-19 20:08 23次阅读
    <b class='flag-5'>鸿蒙</b>OpenHarmony【 配置远程<b class='flag-5'>访问</b><b class='flag-5'>环境</b>】