鸿蒙开发:切换至基于rcp的网络请求

简介: 本文的内容主要是把之前基于http封装的库,修改为当前的Remote Communication Kit(远场通信服务),无非就是通信的方式变了,其他都大差不差。

前言

之前开源了一个基于http封装的网络请求,具体的可以查看之前的文章,奈何随着Api的升级,目前又推荐了另一个Api形式进行网络通信,也就是基于Remote Communication Kit(远场通信服务)只能感叹一声,Api变化的真实迅速啊,有点跟不上官方的节奏了。

为了便于以后得Api的维护,怎么办?只能再根据Remote Communication Kit(远场通信服务)再重新搞一个,毕竟以后的演进都是基于此了。

本文的内容主要是把之前基于http封装的库,修改为当前的Remote Communication Kit(远场通信服务),无非就是通信的方式变了,其他都大差不差。

本文的内容如下:

1、Remote Communication Kit(远场通信服务)简单介绍

2、http库快速使用

3、http库和net库的差异点

4、http库相关总结

一、Remote Communication Kit(远场通信服务)简单介绍

Remote Communication Kit(远场通信服务)是华为提供的HTTP发起数据请求的NAPI封装,应用通过Remote Communication Kit可便捷快速地向服务器发起数据请求。

使用Remote Communication Kit的主要业务流程如下:

1、应用客户端创建会话。

2、应用客户端发起请求。

3、应用客户端接收请求结果,处理相应业务。

二、http库快速使用

中心仓库地址:https://ohpm.openharmony.cn/#/cn/detail/@abner%2Fhttp

目前封装好的http库已经提交至了中心仓库,大家可以在中心仓库进行查看使用,除了个别地方有差异之外,各个功能完全和net库一样,方便原来使用net的的同学进行无缝衔接。

远程依赖方式使用【推荐】

方式一:在Terminal窗口中,执行如下命令安装三方包,DevEco Studio会自动在工程的oh-package.json5中自动添加三方包依赖。

议:在使用的模块路径下进行执行命令。

ohpm install @abner/http

方式二:在工程的oh-package.json5中设置三方包依赖,配置示例如下:

"dependencies": { "@abner/http": "^1.0.0"}

三、http库和net库的差异点

差异点一,拦截器

拦截器不同,net库是基于http进行封装的,http是没有拦截器一说的,为了实现net库的请求拦截,做了一层同步回调处理,而http库是基于Remote Communication Kit(远场通信服务)进行封装的,自带的就有拦截器,可以在全局或者单独请求时进行配置。

全局配置

全局配置可以应对每一个网络请求。

Net.getInstance().init({
      interceptors: [new GlobalInterceptor()]
    })

也可以通过

Net.getInstance().setInterceptors([new GlobalInterceptor()])

单个配置

单个配置仅仅适用于当前的网络请求。

Net.post("/cert/xx")
          .setInterceptor(new TestInterceptor())//单独增加拦截器
            // .setRequestInterceptors() //可以通过这个方法,设置只加载自身拦截器,过滤掉全局
          .setParams({
            "index_type": -1,
            "size": 1,
          })
          .requestString((result) => {
            console.log("===success:" + result)
          }, (err) => {
            console.log("===error:" + err.getMessage())
          })

差异点二,个别属性参数不一样

毕竟Api发生了变化,相关的方法也会有着不一样,比如设置连接超时,读取超时等等,需要采用新的方法进行适配。

四、http库相关总结

和net库有着异曲同工之处,所以,之前如果你使用的是net库,可以无缝衔接,当然了,官方也没有说删除Api http,所以针对Api http也是可以使用的,既然官方已经标注了,大家还是尽量使用Remote Communication Kit(远场通信服务)。

相关文章
|
6月前
|
监控 Dart 安全
创建一个Dart应用,监控局域网上网记录的软件:Flutter框架的应用
在当今数字时代,网络安全变得愈发重要。为了监控局域网上的上网记录,我们可以借助Flutter框架创建一个强大的Dart应用。在这篇文章中,我们将深入讨论如何使用Flutter框架开发这样一个监控局域网上网记录的软件,并提供一些实用的代码示例。
374 1
|
1月前
|
JSON Dart 数据格式
flutter:文件操作与网络请求 (十五)
本文介绍了 Dart 语言中文件操作与网络请求的相关知识,包括 Future 的使用、异步请求的处理以及 async 和 await 的应用。通过示例代码展示了如何实现延时操作、处理网络请求及解析 JSON 数据。
|
2月前
|
Web App开发 前端开发 JavaScript
Web前端项目的跨平台桌面客户端打包方案之——CEF框架
Chromium Embedded Framework (CEF) 是一个基于 Google Chromium 项目的开源 Web 浏览器控件,旨在为第三方应用提供嵌入式浏览器支持。CEF 隔离了底层 Chromium 和 Blink 的复杂性,提供了稳定的产品级 API。它支持 Windows、Linux 和 Mac 平台,不仅限于 C/C++ 接口,还支持多种语言。CEF 功能强大,性能优异,广泛应用于桌面端开发,如 QQ、微信、网易云音乐等。CEF 开源且采用 BSD 授权,商业友好,装机量已超 1 亿。此外,GitHub 项目 CefDetector 可帮助检测电脑中使用 CEF
300 3
|
6月前
|
Linux 开发者 iOS开发
Flutter笔记:桌面端应用多窗口管理方案
Flutter笔记:桌面端应用多窗口管理方案
456 0
|
6月前
|
小程序 Android开发
Appium微信小程序自动化之开启webview调试功能方法封装
Appium微信小程序自动化之开启webview调试功能方法封装
200 0
|
Shell iOS开发
iOS 逆向编程(九 - 2)将端口映射、USB连接手机封装成 .sh 脚本
iOS 逆向编程(九 - 2)将端口映射、USB连接手机封装成 .sh 脚本
138 0
|
Web App开发 JSON JavaScript
移植nodejs到嵌入式linux,让终端支持可使用js做些功能
移植nodejs到嵌入式linux,让终端支持可使用js做些功能
|
Web App开发 Windows
webRTC:jssip登录freeswitch的正确办法及代码
webRTC:jssip登录freeswitch的正确办法及代码
836 0
webRTC:jssip登录freeswitch的正确办法及代码
|
小程序 前端开发 Shell
接入 mPaaS 小程序并实现启动 iOS 版| 学习笔记
快速学习接入 mPaaS 小程序并实现启动 iOS 版。
接入 mPaaS 小程序并实现启动 iOS 版| 学习笔记
|
小程序 Shell 开发工具
接入 mpaas 小程序并实现启动 IOS 版|学习笔记
快速学习接入 mpaas 小程序并实现启动 IOS 版
232 0
接入 mpaas 小程序并实现启动 IOS 版|学习笔记