0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙OS封裝【axios 網(wǎng)絡(luò)請求】(類似Android的Okhttp3)

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-03-26 21:14 ? 次閱讀

Okhttp.ets

/**
 * 網(wǎng)絡(luò)請求
 */
import axios from '@ohos/axios'
import httpConstants from '../net/HttpConstants'
import errorCode from '../utils/errorCode'
import toast from '../utils/ToastUtils'
import router from '../utils/RouterUtils'
import SPUtils from '../utils/SPUtils'
import SpConstants from '../net/SpConstants'

axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
// 創(chuàng)建axios實(shí)例
const service = axios.create({
  baseURL:httpConstants.url,
  timeout:10000
})
// request攔截器
service.interceptors.request.use(async config = > {
  // 是否需要設(shè)置 token
  const access_token = await SPUtils.get(SpConstants.accessToken,"")
  if (access_token != "") {
    config.headers['Authorization'] = 'Bearer ' + access_token // 讓每個請求攜帶自定義token 請根據(jù)實(shí)際情況自行修改
  }
  return config
}, error = > {
  console.log(error)
  Promise.reject(error)
})

// 響應(yīng)攔截器
service.interceptors.response.use(res = > {
  // 未設(shè)置狀態(tài)碼則默認(rèn)成功狀態(tài)
  const code = res.data.code || 200;
  // 獲取錯誤信息
  const msg = errorCode[code] || res.data.msg || errorCode['default']
  if (code === 401) {
    toast.show("登錄狀態(tài)已過期,您可以繼續(xù)留在該頁面,或者重新登錄")
    router.goNot('pages/Login')
  } else if (code === 500) {
    toast.show(msg)
    return Promise.reject(new Error(msg))
  } else if (code !== 200) {
    toast.show(msg)
    return Promise.reject('error')
  } else {
    return res
  }
},
  error = > {
    console.log('err' + error)
    let { message } = error;
    if (message == "Network Error") {
      message = "后端接口連接異常";
    }
    else if (message.includes("timeout")) {
      message = "系統(tǒng)接口請求超時";
    }
    else if (message.includes("Request failed with status code")) {
      message = "系統(tǒng)接口" + message.substr(message.length - 3) + "異常";
    }
    toast.show(message)
    return Promise.reject(error)
  }
)

export default service

API接口調(diào)用方法

LoginAPI.ets

或+mau123789學(xué)習(xí),是v喔

import okHttp from '../utils/Okhttp'

// 登錄方法-POST方法
export function login(username, password, code, uuid) {
  const data = {
    username,
    password,
    code,
    uuid
  }
  return okHttp({
    url: '/login',
    method: 'post',
    data: data
  })
}
// 獲取用戶詳細(xì)信息-GET方法
export function getInfo() {
  return okHttp({
    url: '/getInfo',
    method: 'get'
  })
}

Login.ets頁面

import {login,getInfo} from '../api/LoginAPI'
login(this.userName,this.userPwd,this.userCode,this.uuid).then(res= >{
  SPUtils.put(SpConstants.appUser,this.userName)
  SPUtils.put(SpConstants.appPwd,this.userPwd)
  SPUtils.put(SpConstants.accessToken,res.data.token)
})

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 鴻蒙OS
    +關(guān)注

    關(guān)注

    0

    文章

    188

    瀏覽量

    4346
收藏 人收藏

    評論

    相關(guān)推薦

    鴻蒙OS崛起,鴻蒙應(yīng)用開發(fā)工程師成市場新寵

    應(yīng)用的形態(tài)也在發(fā)生著翻天覆地的變化。作為全球領(lǐng)先的移動操作系統(tǒng)和智能終端制造商,華為公司自主研發(fā)的鴻蒙OS應(yīng)運(yùn)而生,致力于構(gòu)建一個統(tǒng)一的分布式操作系統(tǒng),為各行各業(yè)的應(yīng)用開發(fā)帶來全新的可能性。 一、鴻蒙
    發(fā)表于 04-29 17:32

    鴻蒙OS開發(fā)實(shí)例:【HarmonyHttpClient】網(wǎng)絡(luò)框架

    鴻蒙上使用的Http網(wǎng)絡(luò)框架,里面包含純Java實(shí)現(xiàn)的HttpNet,類似okhttp使用,支持同步和異步兩種請求方式;還有
    的頭像 發(fā)表于 04-12 16:58 ?759次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b>開發(fā)實(shí)例:【HarmonyHttpClient】<b class='flag-5'>網(wǎng)絡(luò)</b>框架

    鴻蒙OS開發(fā)實(shí)戰(zhàn):【網(wǎng)絡(luò)管理HTTP數(shù)據(jù)請求

    應(yīng)用通過HTTP發(fā)起一個數(shù)據(jù)請求,支持常見的GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT方法。
    的頭像 發(fā)表于 04-01 16:31 ?597次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b>開發(fā)實(shí)戰(zhàn):【<b class='flag-5'>網(wǎng)絡(luò)</b>管理HTTP數(shù)據(jù)<b class='flag-5'>請求</b>】

    鴻蒙OS開發(fā)實(shí)例:【窺探網(wǎng)絡(luò)請求

    HarmonyOS 平臺中使用網(wǎng)絡(luò)請求,需要引入 "@ohos.net.http", 并且需要在 module.json5 文件中申請網(wǎng)絡(luò)權(quán)限, 即 “ohos.permission.INTERNET” 本篇文章將嘗試使用
    的頭像 發(fā)表于 04-01 16:11 ?668次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b>開發(fā)實(shí)例:【窺探<b class='flag-5'>網(wǎng)絡(luò)</b><b class='flag-5'>請求</b>】

    鴻蒙原生應(yīng)用開發(fā)-網(wǎng)絡(luò)管理HTTP數(shù)據(jù)請求

    request請求先返回??梢愿鶕?jù)業(yè)務(wù)需要訂閱此消息。 4.調(diào)用該對象的request()方法,傳入http請求的url地址和可選參數(shù),發(fā)起網(wǎng)絡(luò)請求。 5.按照實(shí)際業(yè)務(wù)需要,解析返回結(jié)
    發(fā)表于 03-29 17:51

    鴻蒙OS開發(fā)實(shí)例:【工具類封裝-http請求

    ;@ohos.promptAction';** **封裝HTTP接口請求類,提供格式化的響應(yīng)信息輸出功能。 使用 DevEco Studio 3.1.1 Release 及以上版本,API 版本為 api 9 及以上
    的頭像 發(fā)表于 03-27 22:32 ?1214次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b>開發(fā)實(shí)例:【工具類<b class='flag-5'>封裝</b>-http<b class='flag-5'>請求</b>】

    鴻蒙開發(fā)實(shí)戰(zhàn):網(wǎng)絡(luò)請求庫【axios

    [Axios]?,是一個基于 promise 的網(wǎng)絡(luò)請求庫,可以運(yùn)行 node.js 和瀏覽器中。本庫基于[Axios]原庫v1.3.4版本進(jìn)行適配,使其可以運(yùn)行在 OpenHarmo
    的頭像 發(fā)表于 03-25 16:47 ?3481次閱讀
    <b class='flag-5'>鴻蒙</b>開發(fā)實(shí)戰(zhàn):<b class='flag-5'>網(wǎng)絡(luò)</b><b class='flag-5'>請求</b>庫【<b class='flag-5'>axios</b>】

    2024款鴻蒙OS 最新HarmonyOS Next_HarmonyOS4.0系列教程分享

    了有關(guān)華為鴻蒙的課程,包括清華大學(xué)、武漢大學(xué)、哈爾濱工業(yè)大學(xué)等等。據(jù)香港《南華早報》報道,當(dāng)?shù)貢r間1月3日,加拿大市場研究與咨詢機(jī)構(gòu)TechInsights發(fā)布按照操作系統(tǒng)(OS)劃分的全球智能手機(jī)銷售
    發(fā)表于 02-28 10:29

    鴻蒙OS之UI架構(gòu)解析

    發(fā)送get請求,然后更新articles數(shù)組。 aboutToAppear() { // 請求網(wǎng)絡(luò)數(shù)據(jù) axios.get(url).then(response => { //
    發(fā)表于 02-20 15:36

    Android、iOS、鴻蒙多平臺框架ArkUI-X

    Android、iOS、鴻蒙多個平臺上提供生動而流暢的用戶界面體驗(yàn)。 一、配套關(guān)系 表1 版本軟件和平臺配套關(guān)系 目標(biāo)平臺 項(xiàng)目編譯使用OS SDK版本 備注 OpenHarmony 4.0 (API
    的頭像 發(fā)表于 01-31 14:52 ?1649次閱讀
    跨<b class='flag-5'>Android</b>、iOS、<b class='flag-5'>鴻蒙</b>多平臺框架ArkUI-X

    鴻蒙OS和開源鴻蒙什么關(guān)系?

    內(nèi)核,其他功能都以模塊的形式存在。 ? ? 華為用的是鴻蒙OS 我們都知道,華為手機(jī)的鴻蒙OS是可以運(yùn)行安卓軟件的,是因?yàn)橄到y(tǒng)中有安卓兼容層,所以可以簡單這么理解:
    的頭像 發(fā)表于 01-30 15:44 ?977次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b>和開源<b class='flag-5'>鴻蒙</b>什么關(guān)系?

    OpenHarmony:使用網(wǎng)絡(luò)組件axios與Spring Boot進(jìn)行前后端交互

    這兩個函數(shù)是使用axios庫發(fā)起HTTP GET請求的函數(shù),用于與服務(wù)器進(jìn)行通信
    的頭像 發(fā)表于 01-22 17:35 ?566次閱讀
    OpenHarmony:使用<b class='flag-5'>網(wǎng)絡(luò)</b>組件<b class='flag-5'>axios</b>與Spring Boot進(jìn)行前后端交互

    鴻蒙Harmony是如何影響Android工程師的呢?

    其實(shí)鴻蒙在2019就已經(jīng)出來了,那時候還是套殼Android的。從2023年9月的發(fā)布會上,華為宣布鴻蒙原生應(yīng)用全面啟動、HarmonyOS NEXT亮相以后,圍繞著純血鴻蒙展開的
    發(fā)表于 01-14 22:14

    鴻蒙 OS 應(yīng)用開發(fā)初體驗(yàn)

    的操作系統(tǒng)平臺和開發(fā)框架。HarmonyOS 的目標(biāo)是實(shí)現(xiàn)跨設(shè)備的無縫協(xié)同和高性能。 DevEco Studio 對標(biāo) Android Studio,開發(fā)鴻蒙 OS 應(yīng)用的 IDE。 啟動頁面
    發(fā)表于 11-02 19:38

    Orange Pi OS(OH)發(fā)布,開源鴻蒙PC端來了!

    正式向大家宣布一個喜訊:基于OpenHarmony定制研發(fā)的Orange Pi OS(OH)即將發(fā)布!日前,迅龍開源鴻蒙的工程師團(tuán)隊(duì)已經(jīng)在搭載RK3566的開發(fā)板Orange Pi 3B上完成
    發(fā)表于 10-26 11:32