鸿蒙next RCP网络请求工具类基础封装来了
2024-12-25 00:03:38
165次阅读
0个评论
前言:
各位同学大家好,有一段时间没有更新文章了,最近因为鸿蒙官方的网络请求换掉了了rcp 之前是使用http 这些都是原生开发的 当然有那种三方大家熟知的 axios (这个也是基于http 后面也会过时)所以大家还是要了解一下rcp的原生的网络请求的。那么我们不废话正式开始。
具体实现
这里我们主要讲究get 请求和post 请求 其他的还有put 请求和delete 请求用得相对较少有兴趣的同学可以查阅我们的官网的文档即可。
-
定义get 请求方法
export function rcpGet(url:string,params?:string){
return rcpRequest(url,'GET',params)
}
-
定义post请求方法
export function rcpPost(url:string,params?:string){
return rcpRequest(url,'POST',params)
}
-
声明请求头
let headers:rcp.RequestHeaders={
'accept':'application/json'
}
-
创建 session实例
let session=rcp.createSession();
-
创建 Request 实例
let req=new rcp.Request(url,method,headers,params)
-
发起请求并获取服务器响应数据
return session.fetch(req).then((respone)=>{
Logger.error(`请求成功 success ${JSON.stringify(respone)}` );
if(respone.statusCode===200){
let result=`${JSON.stringify(respone)}`
Logger.error(`请求成功 result $`+result );
getjson=result;
}else{
getjson='';
}
return getjson;
}).catch((err:BusinessError)=>{
Logger.error("err err code "+err.code+ "err message = "+err.message);
return '';
});
完整代码
import {rcp} from '@kit.RemoteCommunicationKit'
import { BusinessError } from '@kit.BasicServicesKit'
import Logger from './Logger'
export function rcpGet(url:string,params?:string){
return rcpRequest(url,'GET',params)
}
export function rcpPost(url:string,params?:string){
return rcpRequest(url,'POST',params)
}
function rcpRequest(url:string,method:string,params?:string):Promise<string>{
let headers:rcp.RequestHeaders={
'accept':'application/json'
}
let session=rcp.createSession();
let req=new rcp.Request(url,method,headers,params)
let getjson='';
return session.fetch(req).then((respone)=>{
Logger.error(`请求成功 success ${JSON.stringify(respone)}` );
if(respone.statusCode===200){
let result=`${JSON.stringify(respone)}`
Logger.error(`请求成功 result $`+result );
getjson=result;
}else{
getjson='';
}
return getjson;
}).catch((err:BusinessError)=>{
Logger.error("err err code "+err.code+ "err message = "+err.message);
return '';
});
}
具体在页面中调用
-
get 请求不使用then回调
let getjson=await rcpGet(this.geturl);
Logger.error("getjson "+getjson)
-
get请求使用then回调
rcpGet(this.geturl).then((data)=>{
Logger.error("getjson data "+data)
})
-
post请求
let contentdata:UserInfo = {
'username':'10882782732',
'password':'24232232'
};
await rcpPost(this.registerurl,JSON.stringify(contentdata)).then((data)=>{
Logger.error("postjson data "+data)
})
-
具体调用效果
我们通过日志截图里面的数据我们无论是用post或者get 都可以顺利请求到我们服务器的数据并返回 这个工具类算是比较基础封装,有兴趣的同学可以使用泛型对这个工具类再次进行封装让我们传参和回调更加灵活。
最后总结:
鸿蒙next 里面rcp 网络请求相对比较简单,但是这里只是简单提到了用法 ,例如还有拦截器还有请求数据超时时间我也没有设置,还有请求头参入其他外部参数也没有暴漏出去,这些希望同学们可以自己去完善 老师这边只是提供一个基本的思路,今天的文章就讲到这里有兴趣的同学可以拿老师代码去优化修改, 今天的文章就讲到这里有兴趣的 关注我B站教程 了解更多鸿蒙开发的知识 可以关注坚果派公众号 。 谢谢
课程地址
项目内容:
-
1 常用布局组件的学习
-
2 网络请求工具类封装
-
3 arkui 生命周期启动流程
-
4 日志工具类的封装
-
5 自定义组合组件的封装
-
6 路由导航跳转的使用
-
7 本地地数据的缓存 以及缓存工具类的封装
-
8 欢迎页面的实现
-
9 登录案例和自动登录效果实现
-
10 请求网络数据分页上拉加载 下拉刷新的实现
-
11 list数据懒加载实现
-
12 webview组件的使用
如果使用更多好用的鸿蒙next三方库
友情链接
harmony-utils 一款功能丰富且极易上手的HarmonyOS工具库,借助众多实用工具类,致力于助力开发者迅速构建鸿蒙应用,能够满足各种不同的开发需求。
harmony-dialog 一款极为简单易用的零侵入弹窗,仅需一行代码即可轻松实现,无论在何处都能够轻松弹出。
00
- 0回答
- 3粉丝
- 0关注
相关话题
- 鸿蒙next RCP网络请求工具类进阶版来了
- 鸿蒙开发:切换至基于rcp的网络请求
- 113.HarmonyOS NEXT 日志工具类详解(一):Logger类基础结构
- 鸿蒙NEXT开发App相关工具类(ArkTs)
- 鸿蒙jsonToArkTS_工具Java版本来了
- 鸿蒙开发(二):使用ArkTS实现HTTP请求功能:GET与POST请求的封装
- 第二一课:HarmonyOS Next网络请求开发实战
- 第二一课:HarmonyOS Next网络请求开发实战
- 《探索 HarmonyOS NEXT(5.0):开启构建模块化项目架构奇幻之旅 ——第三方库的使用:网络请求RCP、二次封装上下拉刷新、弹窗》
- Java Android 开发利器 JSON to JavaBean 工具来了
- 62.Harmonyos NEXT 图片预览组件之工具类实现
- 85.HarmonyOS NEXT 网络请求与数据处理:构建可靠的数据层
- 鸿蒙jsonToArkTS来了有
- 鸿蒙HarmonyOS从零实现类微信app基础界面搭建
- HarmonyOS NEXT应用开发实战:十二、远场通信RCP简单好用的模块化封装