亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

鴻蒙中Axios數(shù)據(jù)請(qǐng)求的封裝和配置方法

 更新時(shí)間:2025年04月11日 10:13:51   作者:Mnebo  
這篇文章主要介紹了鴻蒙中Axios數(shù)據(jù)請(qǐng)求的封裝和配置方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

適用于(HarmonyOS NEXT/5.0/API12+)

1.配置權(quán)限 應(yīng)用級(jí)權(quán)限和系統(tǒng)級(jí)權(quán)限

2.配置網(wǎng)絡(luò)請(qǐng)求的代碼

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

3.下載在Entry中 下載Axios

//終端中運(yùn)行
ohpm install @ohos/axios

4.封裝Http請(qǐng)求

實(shí)現(xiàn)思路:

//1.創(chuàng)建AXIOS的實(shí)例對(duì)象

//配置基地址,超時(shí)時(shí)間

//2.配置請(qǐng)求攔截器

//3.配置響應(yīng)攔截器

//4.封裝Htpp類(lèi)

//5.創(chuàng)建并導(dǎo)出 http實(shí)例對(duì)象

//6.統(tǒng)一導(dǎo)出

import axios, { AxiosError, AxiosRequestConfig, AxiosResponse } from "@ohos/axios"
import { logger } from "./Logger"
const baseURL = 'https://api-harmony-teach.itheima.net'
//1.創(chuàng)建AXIOS的實(shí)例對(duì)象
//配置基地址,超時(shí)時(shí)間
//create 創(chuàng)建一個(gè)新的Axios對(duì)象 可以多個(gè)接口使用 
export  const instance =axios.create({
  baseURL,
  timeout:6000
})
//2.配置請(qǐng)求攔截器 (前端給后端的東西)
instance.interceptors.request.use((config:InternalAxiosRequestConfig)=>{
  const user = auth.getUser()
  if(user.token){
    config.headers.Authorization = `Bearer ${ user.token}`
  }
  return config
},(err: AxiosError) => {
  logger.error('Req Error', JSON.stringify(err))
  return Promise.reject(err)
})
//3.配置響應(yīng)攔截器   后端給前端的東西
// instance.interceptors.response.use(()=>{成功} ,()=>{失敗})
//攔截器interceptors
//response通常指的是網(wǎng)絡(luò)請(qǐng)求的響應(yīng)。這是一個(gè)結(jié)構(gòu)體,用于封裝服務(wù)器返回的信息,
//AxiosResponse是Axios庫(kù)中的一個(gè)接口,用于表示HTTP響應(yīng)。以便開(kāi)發(fā)者可以輕松地訪(fǎng)問(wèn)響應(yīng)的各個(gè)部分。
instance.interceptors.response.use((res: AxiosResponse) => {
  //成功
  if (res.data.code === 10000) {
    logger.debug('Req Success', JSON.stringify(res.data.data))
    return res.data.data
  }
  //請(qǐng)求成功,回傳是錯(cuò)誤的
  logger.error('Req Error', JSON.stringify(res.data))
  return Promise.reject(res.data)
}, (err: AxiosError) => {
  //失敗返回的錯(cuò)誤
  logger.error('Req Error', JSON.stringify(err))
  return Promise.reject(err)
})
//4.封裝Htpp類(lèi)
// 提供request方法
class Http {
  // Get 請(qǐng)求可以省略第二個(gè)泛型,因?yàn)閍xios默認(rèn)是any任何值可傳
  //ResponseData 響應(yīng)數(shù)據(jù)類(lèi)型 返回的數(shù)據(jù)(響應(yīng)回來(lái)的數(shù)據(jù))  
  //RequestData  請(qǐng)求數(shù)據(jù)類(lèi)型 請(qǐng)求攜帶的參數(shù)
  //Object 給個(gè)默認(rèn)值 有的是入?yún)?
 //AxiosResponse是Axios庫(kù)中的一個(gè)接口,用于表示HTTP響應(yīng)。以便開(kāi)發(fā)者可以輕松地訪(fǎng)問(wèn)響應(yīng)的各個(gè)部分。
  // request<T,D>
  //T是自己的,D是請(qǐng)求得到
  request<ResponseData, RequestData = Object>(config: AxiosRequestConfig<RequestData>) {
    return instance<null, ResponseData, RequestData>(config)
  }
}
//5.創(chuàng)建并導(dǎo)出 http實(shí)例對(duì)象
export const http = new Http()

5.頁(yè)面中使用

import axios, { AxiosError, AxiosRequestConfig, AxiosResponse } from "@ohos/axios"
import { logger } from "./Logger"
const baseURL = 'https://api-harmony-teach.itheima.net'
//1.創(chuàng)建AXIOS的實(shí)例對(duì)象
//配置基地址,超時(shí)時(shí)間
//create 創(chuàng)建一個(gè)新的Axios對(duì)象 可以多個(gè)接口使用 
export  const instance =axios.create({
  baseURL,
  timeout:6000
})
//2.配置請(qǐng)求攔截器 (前端給后端的東西)
instance.interceptors.request.use((config:InternalAxiosRequestConfig)=>{
  const user = auth.getUser()
  if(user.token){
    config.headers.Authorization = `Bearer ${ user.token}`
  }
  return config
},(err: AxiosError) => {
  logger.error('Req Error', JSON.stringify(err))
  return Promise.reject(err)
})
//3.配置響應(yīng)攔截器   后端給前端的東西
// instance.interceptors.response.use(()=>{成功} ,()=>{失敗})
//攔截器interceptors
//response通常指的是網(wǎng)絡(luò)請(qǐng)求的響應(yīng)。這是一個(gè)結(jié)構(gòu)體,用于封裝服務(wù)器返回的信息,
//AxiosResponse是Axios庫(kù)中的一個(gè)接口,用于表示HTTP響應(yīng)。以便開(kāi)發(fā)者可以輕松地訪(fǎng)問(wèn)響應(yīng)的各個(gè)部分。
instance.interceptors.response.use((res: AxiosResponse) => {
  //成功
  if (res.data.code === 10000) {
    logger.debug('Req Success', JSON.stringify(res.data.data))
    return res.data.data
  }
  //請(qǐng)求成功,回傳是錯(cuò)誤的
  logger.error('Req Error', JSON.stringify(res.data))
  return Promise.reject(res.data)
}, (err: AxiosError) => {
  //失敗返回的錯(cuò)誤
  logger.error('Req Error', JSON.stringify(err))
  return Promise.reject(err)
})
//4.封裝Htpp類(lèi)
// 提供request方法
class Http {
  // Get 請(qǐng)求可以省略第二個(gè)泛型,因?yàn)閍xios默認(rèn)是any任何值可傳
  //ResponseData 響應(yīng)數(shù)據(jù)類(lèi)型 返回的數(shù)據(jù)(響應(yīng)回來(lái)的數(shù)據(jù))  
  //RequestData  請(qǐng)求數(shù)據(jù)類(lèi)型 請(qǐng)求攜帶的參數(shù)
  //Object 給個(gè)默認(rèn)值 有的是入?yún)?
 //AxiosResponse是Axios庫(kù)中的一個(gè)接口,用于表示HTTP響應(yīng)。以便開(kāi)發(fā)者可以輕松地訪(fǎng)問(wèn)響應(yīng)的各個(gè)部分。
  // request<T,D>
  //T是自己的,D是請(qǐng)求得到
  request<ResponseData, RequestData = Object>(config: AxiosRequestConfig<RequestData>) {
    return instance<null, ResponseData, RequestData>(config)
  }
}
//5.創(chuàng)建并導(dǎo)出 http實(shí)例對(duì)象
export const http = new Http()

到此這篇關(guān)于鴻蒙中Axios數(shù)據(jù)請(qǐng)求的封裝和配置方法的文章就介紹到這了,更多相關(guān)鴻蒙 Axios數(shù)據(jù)請(qǐng)求內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 教你免費(fèi)做一個(gè)屬于自己穩(wěn)定有效的圖床-PicGo

    教你免費(fèi)做一個(gè)屬于自己穩(wěn)定有效的圖床-PicGo

    由于現(xiàn)在很多寫(xiě)作平臺(tái)都支持了Markdown語(yǔ)法,導(dǎo)致圖床用的人越來(lái)越多。這篇文章主要介紹了如何免費(fèi)做一個(gè)屬于自己穩(wěn)定有效的圖床-PicGo,需要的朋友可以參考下
    2020-01-01
  • gradle+shell實(shí)現(xiàn)自動(dòng)系統(tǒng)簽名

    gradle+shell實(shí)現(xiàn)自動(dòng)系統(tǒng)簽名

    這篇文章主要介紹了gradle+shell實(shí)現(xiàn)自動(dòng)系統(tǒng)簽名的相關(guān)資料,需要的朋友可以參考下
    2019-08-08
  • DeepSeek本地部署流程詳細(xì)指南

    DeepSeek本地部署流程詳細(xì)指南

    DeepSeek是一款開(kāi)源且性能強(qiáng)大的大語(yǔ)言模型,提供了靈活的本地部署方案,以下是詳細(xì)的DeepSeek本地部署流程,文中將部署的流程介紹的非常詳細(xì),需要的朋友可以參考下
    2025-02-02
  • asp php 清空access mysql mssql數(shù)據(jù)庫(kù)的代碼

    asp php 清空access mysql mssql數(shù)據(jù)庫(kù)的代碼

    php清空mysql asp情況access或mssql
    2008-12-12
  • 一文了解文檔寫(xiě)作利器 Markdown

    一文了解文檔寫(xiě)作利器 Markdown

    這篇文章主要介紹了一文了解文檔寫(xiě)作利器 Markdown,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • git 優(yōu)雅的撤銷(xiāo)中間某次提交方法

    git 優(yōu)雅的撤銷(xiāo)中間某次提交方法

    這篇文章主要介紹了git 優(yōu)雅的撤銷(xiāo)中間某次提交方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 最新Adobe2022?全家桶永久激活無(wú)限使用?附安裝包下載(一鍵安裝)

    最新Adobe2022?全家桶永久激活無(wú)限使用?附安裝包下載(一鍵安裝)

    眾所周知,Adobe系列的軟件每年都會(huì)更新一個(gè)大版本,這不,2022年還沒(méi)到來(lái),可Adobe2022已經(jīng)更新了,所以最新版一出來(lái),就有安裝體驗(yàn),整體效果非常不錯(cuò),今天就把所有資源分享給大家
    2021-12-12
  • HTTP協(xié)議詳細(xì)介紹

    HTTP協(xié)議詳細(xì)介紹

    HTTP是訪(fǎng)問(wèn)互聯(lián)網(wǎng)使用的核心通信協(xié)議,也是所有web應(yīng)用程序使用的通信協(xié)議。本文詳細(xì)介紹了HTTP協(xié)議,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • github版本庫(kù)使用詳細(xì)圖文教程(命令行及圖形界面版)

    github版本庫(kù)使用詳細(xì)圖文教程(命令行及圖形界面版)

    今天我們就來(lái)學(xué)習(xí)github的使用,我們將用它來(lái)管理我們的代碼,你會(huì)發(fā)現(xiàn)它的好處的,當(dāng)然是要在本系列教程全部完成之后,所以請(qǐng)緊跟站長(zhǎng)的步伐,今天是第一天,我們來(lái)學(xué)習(xí)如何在git上建立自己的版本倉(cāng)庫(kù),并將代碼上傳到倉(cāng)庫(kù)中
    2015-08-08
  • 微信報(bào)警 zabbix實(shí)現(xiàn)詳解

    微信報(bào)警 zabbix實(shí)現(xiàn)詳解

    這篇文章主要介紹了微信報(bào)警 zabbix方法的相關(guān)資料,需要的朋友可以參考下
    2016-09-09

最新評(píng)論