99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙OS封裝【axios 網絡請求】(類似Android的Okhttp3)

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-03-26 21:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Okhttp.ets

/**
 * 網絡請求
 */
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實例
const service = axios.create({
  baseURL:httpConstants.url,
  timeout:10000
})
// request攔截器
service.interceptors.request.use(async config = > {
  // 是否需要設置 token
  const access_token = await SPUtils.get(SpConstants.accessToken,"")
  if (access_token != "") {
    config.headers['Authorization'] = 'Bearer ' + access_token // 讓每個請求攜帶自定義token 請根據(jù)實際情況自行修改
  }
  return config
}, error = > {
  console.log(error)
  Promise.reject(error)
})

// 響應攔截器
service.interceptors.response.use(res = > {
  // 未設置狀態(tài)碼則默認成功狀態(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接口調用方法

LoginAPI.ets

或+mau123789學習,是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
  })
}
// 獲取用戶詳細信息-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)
})

審核編輯 黃宇

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

    關注

    0

    文章

    191

    瀏覽量

    4995
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    中軟國際正式啟動鴻蒙軟件工場

    自2024年HarmonyOS NEXT版本起,HarmonyOS應用框架層更新為鴻蒙“單框架”,正式告別了對Android應用框架、內核的依賴。2025年,鴻蒙生態(tài)進入規(guī)模化發(fā)展期,各類鴻蒙
    的頭像 發(fā)表于 06-17 15:44 ?351次閱讀

    ArkUI-X與Android聯(lián)動編譯開發(fā)指南

    ArkTS產物到Android工程中。 其功能主要包括: 1.手動配置編譯ArkTS源碼開關 2.手動配置編譯module 3.手動配置文件輸出路徑 編譯配置說明 配置編譯ArkTS腳本開關 在
    發(fā)表于 06-16 22:55

    鴻蒙5開發(fā)寶藏案例分享---Web開發(fā)優(yōu)化案例分享

    \' }, }; return interceptResponse; // 返回緩存數(shù)據(jù),WebView不再發(fā)起網絡請求 } return null; // 不攔截,WebView按原流程請求 }); // 步驟
    發(fā)表于 06-12 17:20

    鴻蒙5開發(fā)寶藏案例分享---點擊完成時延分析

    : 動畫時長 完成時延 100ms 99ms 1000ms 1007ms 優(yōu)化建議 : 默認300ms可縮減至150-200ms 高頻操作區(qū)域建議≤100ms 使用硬件加速動畫 ?** 案例3網絡請求
    發(fā)表于 06-12 17:03

    鴻蒙5開發(fā)寶藏案例分享---應用架構實戰(zhàn)技巧

    └── network/ # 網絡請求封裝 關鍵代碼示例: 1. 公共能力層抽離網絡請求 // common/network/Requ
    發(fā)表于 06-12 16:14

    鴻蒙Next實現(xiàn)瀑布流布局

    為了實現(xiàn)類似真實瀑布流不斷加載新數(shù)據(jù)的效果,可以結合鴻蒙的 LazyForEach 組件,在滾動到列表底部時觸發(fā)數(shù)據(jù)加載邏輯 六、網絡權限 // config.json { \"module
    發(fā)表于 06-10 14:17

    鴻蒙5開發(fā)寶藏案例分享---自由流轉的拖拽多屏聯(lián)動

    ;gt;onScrollEnd</span>事件追加數(shù)據(jù) ?** 案例三:網絡請求封裝(Retrofit風格)** 為什么要封裝 :官方HttpTask寫回調太反人類
    發(fā)表于 06-03 18:50

    極海APM32F407 uc/os3學習筆記之任務管理介紹

    最近了解了uc/os3這個操作系統(tǒng),上篇介紹了uc/os3如何正確移植到APM32F407開發(fā)板上,根據(jù)我最近學到的一些知識,這篇文章主要介紹一下uc/os3中的一些簡單的任務管理API以及如何使用。
    的頭像 發(fā)表于 05-24 14:37 ?305次閱讀
    極海APM32F407 uc/<b class='flag-5'>os3</b>學習筆記之任務管理介紹

    AIGC入門及鴻蒙入門

    。 2. 實踐操作: 使用Python進行實踐,通過transformers庫加載預訓練的文本生成模型。 學習圖像生成算法,如生成對抗網絡(GAN)等。 3. 工具推薦: ChatGPT:由OpenAI
    發(fā)表于 01-13 10:32

    如何調試 HTTP 請求和響應

    調試HTTP請求和響應是Web開發(fā)和網絡編程中的一個重要技能。以下是一些步驟和工具,可以幫助你調試HTTP請求和響應: 1. 使用瀏覽器開發(fā)者工具 大多數(shù)現(xiàn)代瀏覽器都內置了開發(fā)者工具,這些工具可以
    的頭像 發(fā)表于 12-30 09:28 ?1233次閱讀

    鴻蒙Flutter實戰(zhàn):14-現(xiàn)有Flutter 項目支持鴻蒙 II

    分別安裝官方的3.22版本,以及鴻蒙社區(qū)的 3.22.0 版本 3.搭建 Flutter鴻蒙開發(fā)環(huán)境 參考文章《鴻蒙Flutter實戰(zhàn):01-搭建開發(fā)環(huán)境》 搭建項目架構 創(chuàng)建目錄
    發(fā)表于 12-26 14:59

    Python編程:處理網絡請求的代理技術

    網絡編程中,代理技術扮演著至關重要的角色,尤其在處理網絡請求時。通過代理服務器,我們可以實現(xiàn)請求的轉發(fā)、緩存、負載均衡以及安全控制等功能。Python作為一種功能強大的編程語言,為提
    的頭像 發(fā)表于 11-12 07:23 ?543次閱讀

    華為鴻蒙系統(tǒng)正式發(fā)布,華鼎冷鏈科技攜手共筑國產OS生態(tài)

    ,還實現(xiàn)了國產操作系統(tǒng)的自主可控,打破了國外手機操作系統(tǒng)的壟斷局面。 目前支持鴻蒙系統(tǒng)的設備已經超過10億臺,又超過15000個鴻蒙原生應用和元服務上架——其中 華鼎冷鏈科技已上線3鴻蒙
    的頭像 發(fā)表于 10-25 11:43 ?875次閱讀
    華為<b class='flag-5'>鴻蒙</b>系統(tǒng)正式發(fā)布,華鼎冷鏈科技攜手共筑國產<b class='flag-5'>OS</b>生態(tài)

    名單公布!【書籍評測活動NO.47】HarmonyOS NEXT啟程:零基礎構建純血鴻蒙應用

    。 該系統(tǒng)放棄了傳統(tǒng)的AOSP(Android Open Source Project)代碼,僅支持鴻蒙內核及鴻蒙系統(tǒng)的應用,彰顯了中國在操作系統(tǒng)領域的自主可控能力。 HarmonyOS NEXT徹底擺脫
    發(fā)表于 10-14 14:36

    瑞芯微RK3566鴻蒙開發(fā)板Android11修改第三方輸入法為默認輸入法

    本文適用于觸覺智能所有支持Android11系統(tǒng)的開發(fā)板修改第三方輸入法為默認輸入法。本次使用的是觸覺智能的Purple Pi OH鴻蒙開源主板,搭載了瑞芯微RK3566芯片,類樹莓派設計,是Laval官方社區(qū)主薦的一款鴻蒙開發(fā)
    的頭像 發(fā)表于 09-24 09:43 ?1108次閱讀
    瑞芯微RK3566<b class='flag-5'>鴻蒙</b>開發(fā)板<b class='flag-5'>Android</b>11修改第三方輸入法為默認輸入法