如何使用RCP访问网络
在上一节课中,我们学习了如何使用HTTP访问网络,然后在面对大规模应用开发时,HTTP的繁琐与管理不便的弊端逐渐显现,为此,HarmonyOS引入了RCP能力,旨在通过声明式开发范式,提供更为便捷、场景化的HTTP API,并辅以基于会话的多线程模型,实现HTTP参数的动态调整与部署,RCP不仅继承了HTTP的核心功能,更在并发场景下进行了性能优化,数据传输的速度更快,整体性能更强

RCP概述

HTTP(Hyper Text Transfer Protocol) =>
RCP(Remote Communication Kit,远场通信服务)
HarmonyOS提供的HTTP发起数据请求的封装
RCP的全称为Remote Communication Kit
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

RCP业务流程

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

destination HTTP响应的目标位置或目的地,ResponseBodyDestination 类型指定了响应的目标位置或目的地,指示HTTP客户端应该将响应数据发送到哪个位置,该类型支持的值有:‘array-buffer’、IncomingDataCallback、DownloadToFile、DownloadToStream、INetworkOutputQueue
在这里插入图片描述

在这里插入图片描述

请求完成后,服务端会返回具体的响应结果。我们需要对响应进行处理,这个案例中value就是请求返回的结果,value中包含多个字段,如request、statusCode、headers等。

在这里插入图片描述

其中statusCode表示响应结果的状态码,不同的值表示不同的状态。
在这里插入图片描述

RCP请求开发实践

在这里插入图片描述

RCP请求开发流程

  • 导入rcp模块
    在这里插入图片描述

  • 创建Session对象
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

  • 发起请求

我们先通过get请求方式请求图中框线标注的小图标,定义一个getRCPRequest方法,在这个方法中实现发起GET请求的相关代码,通过Session对象调用Get方法发起请求,传入请求资源的url,也就是图标的url地址,请求成功后,将图片保存到方法的入参cacheDir目录下,并返回图片的沙箱路径,成功执行getRCPRequest方法后,我们就可以得到图标资源。

在这里插入图片描述

接下来我们通过POST请求获取列表项目中的其他资源
定义一个postRCPRequest的方法,在这个方法中实现发起POST请求的相关代码,将请求的内容配置到requestContent字段中,在调用post接口时,传入请求资源的Url地址和请求内容requestContent发起请求,请求成功后处理返回值,这里我们请求了三种资源,列表项的图片、标题和介绍内容,分别对应ListInfo类型的三个字段,把返回值保存到responseData中,并且作为方法的返回值返回,成功执行postRCPRequest方法后,我们就可以得到列表项的相关资源,请求结束后,调用close方法关闭会话,这样我们就完成了网络资源的请求。
在这里插入图片描述

  • 处理响应
    在这里插入图片描述
  • 销毁对象
    在这里插入图片描述

最后我们在 Home.ets中调用上面实现的方法,获取需要的数据,将getRCPRequest的返回值,即图标的沙箱目录赋值给pictureUri,将postRcpRequest的返回值,即列表项的资源数组赋值给httpGridItems
在这里插入图片描述
在Build中分别渲染我们保存了资源的字段,从而得到我们想要呈现的效果

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐