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

    文章

    500

    浏览量

    30992
  • 鸿蒙系统
    +关注

    关注

    183

    文章

    2634

    浏览量

    66163
收藏 人收藏

    评论

    相关推荐

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

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

    Linux搭建简易的HTTP服务器完成图片显示

    这篇文章作为Linuxsocket(TCP)网络编程的练习,使用C语言代码搭建一个简单的HTTP服务器,完成与浏览器之间的交互,最终在浏览器上显示一张图片;通过这个例子可以巩固soc
    的头像 发表于 08-13 14:17 2111次阅读
    Linux<b class='flag-5'>下</b>搭建简易的<b class='flag-5'>HTTP</b>服务器<b class='flag-5'>完成</b>图片显示

    鸿蒙网络开发学习:【ylong_http

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

    【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

    分布式环境的Web资源访问控制研究

    针对分布式环境Web 资源安全访问控制,给出了一种系统的设计方案。该系统满足了统一授权和访问控制的需求,具有安全性好、灵活性高、便于管理等特点。同时,还提出了一
    发表于 08-26 11:18 20次下载

    用Cisco路由器HTTP访问

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

    如何在C语言环境对其访问归纳

    单片机的特殊功能寄存器SFR,是SRAM地址已经确定的SRAM单元,在C语言环境对其访问归纳起来有两种方法。
    的头像 发表于 02-17 15:34 693次阅读

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

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

    Linux搭建简易的HTTP服务器完成图片显示

    这篇文章作为Linuxsocket(TCP)网络编程的练习,使用C语言代码搭建一个简单的HTTP服务器,完成与浏览器之间的交互,最终在浏览器上显示一张图片;通过这个例子可以巩固soc
    的头像 发表于 08-14 09:21 1124次阅读

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

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

    HTTP协议的海外网络畅游:安全与效率的双重保障

    在全球化日益加深的今天,HTTP协议作为互联网上最为广泛使用的通信协议之一,为海外网络畅游提供了重要的技术支持。在HTTP协议,海外网络
    的头像 发表于 09-24 08:08 155次阅读

    HTTP海外访问优化:提升跨国网络性能的秘诀

    HTTP海外访问优化是提升跨国网络性能的关键,涉及多个方面的技术和策略。
    的头像 发表于 10-15 08:04 261次阅读