当前位置: 首页 > news >正文

学校网站建设宗旨临沂做网站公司

学校网站建设宗旨,临沂做网站公司,百度搜索引擎seo,同安区建设局网站鸿蒙应用开发-轻松获取http网络请求 1.开启鸿蒙网络权限 我们以一个登陆请求为例分别展示封装前的代码和封装后的代码 使用的API主要是createHttp()和request(),在创建请求前我们先开启网络权限 打开目录entry/src/main/module.json5中的module.json5 "requestPermissio…

鸿蒙应用开发-轻松获取http网络请求

1.开启鸿蒙网络权限

我们以一个登陆请求为例分别展示封装前的代码和封装后的代码

使用的API主要是createHttp()和request(),在创建请求前我们先开启网络权限

打开目录entry/src/main/module.json5中的module.json5

"requestPermissions": [{"name": "ohos.permission.INTERNET"}

2.以登录post请求为例发起请求

在这个案例中请求体中必须的两个参数:username、password

//发起网络请求,创建http请求const req = http.createHttp()//根据URL地址,发起HTTP网络请求。let res = await req.request('输入请求方式为post的网络url地址', {//请求方法method: http.RequestMethod.POST,//请求头header: {"Content-Type": "application/json"},//请求参数extraData: {username: this.username,password: this.password},//将响应回来的值转换为一个对象expectDataType: http.HttpDataType.OBJECT})//存储拿到的数据,并对响应请求做判断,指定返回的数据数据类型let resData = res.resultAlertDialog.show({ message: JSON.stringify(res.result, null, 2) })

上面的请求成功后会得到一个返回的对象,打印后结果如图

3.数据接口

确定好数据对象我们为数据定义好接口用于接收响应的数据(其中有泛型接口)

export interface IResponseModel<T> {/*** 请求成功10000标志*/code: number;
​/*** 返回数据*/data: T;
​/*** 请求成功*/message: string;
​/*** 请求成功标志*/success: boolean;
}
​
/*** 返回数据*/
export interface ILoginUsersModel {/*** 后续交互使用的token*/token: string;
​
​
}

4.接收响应

在对象后面定义好接收的数据类型,对resData进行修改

修改后的代码:

//发起网络请求,创建http请求
const req = http.createHttp()
//根据URL地址,发起HTTP网络请求。
let res = await req.request('https://api-harmony-teach.itheima.net/hm/login', {method: http.RequestMethod.POST,header: {"Content-Type": "application/json"},extraData: {username: this.username,password: this.password},//将响应回来的值转换为一个对象expectDataType: http.HttpDataType.OBJECT
})
//存储拿到的数据,并对响应请求做判断,指定返回的数据数据类型
let resData = res.result as IResponseModel<ILoginUsersModel>
//三个参数的含义:JSON.stringify(要被转换成JSON字符串的JavaScript值,用于控制如何转换对象的属性,用于控制输出字符串的格式化)
AlertDialog.show({ message: JSON.stringify(res.result, null, 2) })

5.响应成功

响应成功后的状态码为10000,用状态码来判断是否是否登录成功,成功后跳转到相应的页面,并将登录所获取的必备信息储存到AppStorage中

if (resData.code !== 10000) {promptAction.showDialog({ message: resData.message })return
} else if (resData.code === 10000) {//存储登陆信息并跳转页面AppStorage.setOrCreate('user', resData.data)router.replaceUrl({url: 'pages/Index'})

在上面的内容中涉及到很多知识,例如:Promise对象的async 和await 异步方法、数据接口泛型使用、路由跳转等,以上若有错误和不足望大家理解,我们友好交流共同学习

http://www.dtcms.com/a/562669.html

相关文章:

  • 期货数据实时展示前端实现方案K线图表展示
  • 网站项目建设的必要性郑州做网站优化的公司
  • dedecms 我的网站wordpress产品参数
  • 网站建设需求调查表做公司网站怎么推广
  • 个人网站服务器一年多少钱站长工具seo综合查询怎么去掉
  • 用模板做网站会被盗吗南通建设信息网站
  • 怎么开个人网站赚钱怎么在导航网站上做推广
  • 建设部网站官网证书编号吴江和城乡建设局网站
  • 网站建设需要的费用重庆建设工程信息网30系统
  • 域名注册最后是网站求职网站怎么做
  • 17.如何利用ArcGIS进行空间统计分析
  • 建设门户网站的请示小红书网络营销方式
  • 外贸网站营销推广鑫诺科技网站建设
  • 郑州网站建设模板换网站公司
  • 设计素材网站会员怎么买划算泉州公司做网站
  • 零基础学JAVA--Day21(房屋出租系统+韩顺平Utility类原码)
  • 广东手机网站制作电话平面设计师的出路
  • 京东网站优化广州注册公司有什么优惠政策
  • 第十二章:终极叩问:我是谁,我往何方?(2)
  • 去年做哪个网站能致富织梦网站怎么做404页面
  • 学习RT-thread(RT-thread启动流程、自动初始化函数、RT-thread串口终端)
  • 将网站加入小程序网店seo是什么意思
  • 电商的网站南京网站制作开发
  • 免费下载的视频网站中国建设信息港网站
  • 怎样自己创建一个网站建筑业企业资质证书多少钱
  • 滴滴注册网站4000套微信小游戏源码
  • Bootstrap4 输入框组
  • 石油工程建设协会网站wordpress引入外部js
  • linux命令-文本处理-2-11
  • 【开源免费图表绘制工具】实用软件推荐之专业图表绘制工具——Draw.io 完整安装与使用指南