HarmonyOS应用开发-网络请求示例 原创 精华
作者:杜晨阳
简介
在应用开发的过程中,网络请求是很常见的场景,其中常见是加载网络图片、访问后台接口等。在安卓系统中实现这些相信大家已经很熟悉了,
那么在鸿蒙系统中又有哪些相似与不同呢?今天给大家带来的是在鸿蒙系统中发起网络请求的使用示例,示例中包含了使用鸿蒙API完成get、post请求,加载网络图片等。
功能展示
开发概述
首先,使用网络模块的相关功能时,需要请求相应的权限。
添加在entry模块的config.json中
权限相关配置好后,接下来看一下鸿蒙开发官网上对于网络模块开发的接口说明
文档中给出了网络开发的关键接口说明及网络开发的一般步骤,
1、调用NetManager.getInstance(Context)获取网络管理的实例对象。
2、调用NetManager.getDefaultNet()获取默认的数据网络。
3、调用NetHandle.openConnection()打开一个URL。
4、通过URL链接实例访问网站。
并且提供了网络状态的监听接口addDefaultNetStatusCallback(NetStatusCallback callback)
下面我们来编写下完整的网络请求实例
1、get请求
2、post请求
测试发现,只需要将connection.setRequestMethod();中的参数修改成“POST"即可
3、网络图片加载
在加载网络图片时,connection连接成功后,获取到的是一张图片的输入流。为了将图片输入流转化成可以显示的PixelMap对象,
需要先创建ImageSource对象,再通过imageSource.createPixelmap(null)创建对应的pixelMap对象,
最终通过image.setPixelMap(pixelMap));将图片加载到屏幕上。
以下是完整代码示例:
总结
到此本篇文档就要告一段落了。通过本篇的学习,基本掌握了鸿蒙系统中的网络请求及网络图片加载。
最后跟大家分享一些开发过程中的注意事项
1、鸿蒙系统中默认的网络请求地址格式是https,如果想要访问http网址,需要修改允许明文信息传输的配置
同样在entry模块的config.json中(如果存在多个module,最好在每一个config.json文件中均添加上该配置)
2、网络请求是耗时操作,必须执行在子线程中,否则报错android.os.NetworkOnMainThreadException
3、在加载网络图片示例中,我们将connection.getInputStream()数据流直接转换成了ImageSource。
但是再请求其他网络地址时,如访问www.baidu.com的返回结果就是html文件,因此在网络连接成功的后续数据处理中,需要注意数据格式。
更多原创内容请关注:深开鸿技术团队
入门到精通、技巧到案例,系统化分享HarmonyOS开发技术,欢迎投稿和订阅,让我们一起携手前行共建鸿蒙生态。
学习下大佬的敲代码方式