鸿蒙 HarmonyOS4.0 Http数据请求封装详解

这篇具有很好参考价值的文章主要介绍了鸿蒙 HarmonyOS4.0 Http数据请求封装详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

http请求封装

步骤

1、定义响应数据格式

2、封装数据请求

3、将各种请求进行模块划分

4、请求示例

项目目录

鸿蒙 接口请求封装,harmonyos

1、定义响应数据格式

 export default class  Response {
   /**
    * 响应码
    */
   code:number
   /**
    * 响应消息
    */
   message:string
   /**
    * 响应数据
    */
   data:any
 }

2、封装数据请求

提示:具体更详细的配置请参考官网

 import http from '@ohos.net.http';
 //导入预定好的数据响应格式
 import Response from '../utils/Response'
 ​
 //导出去一个请求函数,这样开发者就可以像axios一样的风格请求数据
 export function request(url:string,method: http.RequestMethod,data?:any): Promise<Response> {
   //定义一个后台请求的基地址
   const BASE_URL =  "http://localhost:9600"
   let httpRequest = http.createHttp();
   let responseResult = httpRequest.request( BASE_URL+ url,{
     method: method,
     // header: {
     //   'Content-Type': 'application/json'
     // },
     //携带额外参数
     extraData: JSON.stringify(data),
     // 可选,指定返回数据的类型
     // expectDataType: http.HttpDataType.STRING,
     // 可选,默认为true
     // usingCache: true,
     // 可选,默认为1
     // priority: 1,
     // 可选,默认为60000ms
     // connectTimeout: 60000,
     // readTimeout: 60000,
     // 可选,协议类型默认值由系统自动指定
     // usingProtocol: http.HttpProtocol.HTTP1_1,
   });
 ​
   let response = new Response();
   // 处理数据,并返回
   return responseResult.then((value: http.HttpResponse) => {
     if (value.responseCode === 200) {
       // 获取返回数据,将返回的json数据解析成事先预定好的响应格式
       // 这里建议和后端的保持一致
       let res: Response = JSON.parse(`${value.result}`);
       response.data = res.data;
       response.code = res.code;
       response.message = res.message;
     } else {
       response.message = '请求错误';
       response.code = 400;
     }
     return response;
   }).catch(() => {
     response.message = '请求错误';
     response.code = 400;
     return response;
   });
 }

3、将各种请求进行模块划分

熟悉vue开发的同学都知道我们不同模块的请求一般放在api目录下进行划分

如下以请求用户User模块为示例

 import http from '@ohos.net.http';
 //导入封装好的请求
 import { request } from '../utils/request'
 ​
 /**
  * 根据用户id请求用户数据
  * @param userId
  * @returns
  */
 export function getUserById(userId) {
   return request(`/user/get/${userId}`,http.RequestMethod.GET)
 }
 ​
 /**
  * 请求用户数据
  * @param userId
  * @returns
  */
 export function getUser() {
   return request('/user/get',http.RequestMethod.GET)
 }
 ​
 /**
  * 用户数据保存
  * @param userId
  * @returns
  */
 export function save(data) {
   return request(`/user/save`,http.RequestMethod.POST,data)
 }

4、附上一个请求示例

这里提前一个用户对象用于接收数据时使用文章来源地址https://www.toymoban.com/news/detail-763170.html

 export default class User {
   username:string
   password:string
 }
 //导入api下的User模块:请求方法
 import {getUser,save,getUserById} from '../api/user'
 //导入定义好的用户对象
 import User from '../model/User'
 ​
 @Entry
 @Component
 struct Index {
   @State user:User = {
     username: '',
     password: ''
   }
 ​
     //组件展示前进行数据的一个请求
   aboutToAppear() {
     //根据用户id进行的一个请求
     getUserById(1).then(res => {
       if(res.code === 200){
         this.user = res.data
       }
     })
     //不携带参数的一个请求
     getUser().then(res => {
       if(res.code === 200){
         this.user = res.data
       }
     })
   }
 ​
   build() {
     Row() {
       Column() {
         Text(this.user.username)
           .fontSize(30)
           .fontWeight(FontWeight.Bold)
         Text(this.user.password)
           .fontSize(30)
           .fontWeight(FontWeight.Bold)
 ​
         Divider()
         TextInput().margin({ top: 20 })
           .onChange((value: string) => {
             this.user.username = value
           })
         TextInput().type(InputType.Password).margin({ top: 20 })
           .onChange((value: string) => {
             this.user.password = value
           })
         Button('登录').width(150).margin({ top: 20 })
           .onClick(()=> {
             console.log("发送成功")
             //保存用户数据的一个请求
             save(this.user)
           })
       }
       .width('100%')
       .height('100%')
       .padding({top: 50})
     }
     .height('100%')
     .width('100%')
     .alignItems(VerticalAlign.Top)
   }
 }

到了这里,关于鸿蒙 HarmonyOS4.0 Http数据请求封装详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 详细教程 - 从零开发 Vue 鸿蒙harmonyOS应用 第五节 (基于uni-app封装鸿蒙接口请求库)

      随着鸿蒙系统的兴起,越来越多的app会采用鸿蒙开发。而鸿蒙开发必不可少的就是调用各种接口服务。为了简化接口的调用流程,我们通常会做一层封装。今天就来讲解一下,如何用uni-app封装鸿蒙的接口请求库。   首先我们要新建一个鸿蒙项目啦!当然选择第一个空白项

    2024年02月02日
    浏览(35)
  • 鸿蒙HarmonyOS4.0开发应用学习笔记

    鸿蒙harmony开发文档指南 DevEco Studio下载地址 选择或者安装环境 选择和下载SDK 安装总览 编辑器界面 2.1变量声明 2.2条件控制 2.3循环迭代 2.4函数 2.5类和接口 2.6模块开发 通用功能抽取到单独的ts文件,每个文件都是一个模块(module)。 模块可以相互加载,提高代码复用性。 crea

    2024年02月04日
    浏览(41)
  • HarmonyOS中的http请求及其封装(附案例)

    HarmonyOS提供了@ohos.net.http模块,它提供了Http数据请求能力。当在应用开发中需要使用http获取服务端数据时可以导入该模块实现http请求的发送。 @ohos.net.http模块提供http数据请求能力。应用可以通过http发起一个数据请求,支持常见的GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CON

    2024年02月04日
    浏览(24)
  • 最新鸿蒙HarmonyOS4.0开发登陆的界面1

    说明一下,本人只是学习中,现在只是拿着vue及uniapp的经验在一点一点的折腾,不过现在看来,鸿蒙入门并不是很难。也许是自己没有深入下去。 https://developer.harmonyos.com/cn/develop/deveco-studio#download 安装成后,则可以开发了。 Bundle name 要求唯一。 等待完成,完成后点击previe

    2024年02月04日
    浏览(27)
  • 【华为鸿蒙系统学习】- HarmonyOS4.0开发|自学篇

    ​ 🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 💫个人格言: \\\"没有罗马,那就自己创造罗马~\\\" 目录 HarmonyOS 4.0 技术介绍: HarmonyOS三大特征:     1.实现硬件互助,资源共享。      2. 面向开发者,实现一次开发,多端部署。  3.一套操

    2024年02月05日
    浏览(31)
  • 鸿蒙HarmonyOS4.0开发应用从入门到实战 安装DevEcoStudio

    安装包下载地址: 可以根据自己的操作系统选择对应版本下载。 HUAWEI DevEco Studio和SDK下载和升级 | HarmonyOS开发者 下载好后,打开安装包,进入安装界面: 点击Next,进入安装目录选择页面(不要出现中文或特殊字符),可以走默认路径: 点击Next,进入安装选项页面,按照如

    2024年02月04日
    浏览(35)
  • 全面升级:华为鸿蒙HarmonyOS4正式发布,玩趣个性化,小艺AI升级

    8月4日新闻,今天下午,华为正式发布了最新版本的鸿蒙操作系统——HarmonyOS 4! 在华为发布会上,鸿蒙HarmonyOS迎来了一系列令人激动的功能升级。其中包括个性化空间、多种生产力工具以及增强的手机AI助手\\\"小艺\\\"。这次更新使得鸿蒙手机系统呈现出全新的特色。让我们一起

    2024年02月13日
    浏览(29)
  • 华为harmonyos4.0鸿蒙4.0安装谷歌服务框架Play商店,解决从服务器检索信息时出错

    8月4号华为手机发布了全新的harmonyos4.0鸿蒙4.0系统,很多人需要问还是不是支持谷歌服务框架?那么答案是肯定的,它和鸿蒙3是一样的,一样的操作,一样的支持安装谷歌服务框架,安装Google play商店。测试机型,Mate30,Mate40,Mate50,P50,P60,华为的几款折叠屏xs,x3,这几款测试都是

    2024年02月13日
    浏览(34)
  • HarmonyOS ArkTS HTTP数据请求(九)

    日常生活中我们使用应用程序看新闻、发送消息等,都需要连接到互联网,从服务端获取数据。例如,新闻应用可以从新闻服务器中获取最新的热点新闻,从而给用户打造更加丰富、更加实用的体验。 那么要实现这样一种能实时从服务端获取数据的场景,就依赖于HTTP数据请

    2024年02月03日
    浏览(31)
  • 鸿蒙应用开发之HTTP数据请求

    日常生活中我们使用应用程序看新闻、发送消息等,都需要连接到互联网,从服务端获取数据。例如,新闻应用可以从新闻服务器中获取最新的热点新闻,从而给用户打造更加丰富、更加实用的体验。 那么要实现这样一种能实时从服务端获取数据的场景,就依赖于HTTP数据请

    2024年02月05日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包