那曲檬骨新材料有限公司

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

完善資料讓更多小伙伴認識你,還能領取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'
// 創建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 請根據實際情況自行修改
  }
  return config
}, error = > {
  console.log(error)
  Promise.reject(error)
})

// 響應攔截器
service.interceptors.response.use(res = > {
  // 未設置狀態碼則默認成功狀態
  const code = res.data.code || 200;
  // 獲取錯誤信息
  const msg = errorCode[code] || res.data.msg || errorCode['default']
  if (code === 401) {
    toast.show("登錄狀態已過期,您可以繼續留在該頁面,或者重新登錄")
    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 = "系統接口請求超時";
    }
    else if (message.includes("Request failed with status code")) {
      message = "系統接口" + 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)
})

審核編輯 黃宇

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

    關注

    0

    文章

    190

    瀏覽量

    4537
收藏 人收藏

    評論

    相關推薦

    如何調試 HTTP 請求和響應

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

    鴻蒙Flutter實戰:14-現有Flutter 項目支持鴻蒙 II

    分別安裝官方的3.22版本,以及鴻蒙社區的 3.22.0 版本 3.搭建 Flutter鴻蒙開發環境 參考文章《鴻蒙Flutter實戰:01-搭建開發環境》 搭建項目架構 創建目錄
    發表于 12-26 14:59

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

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

    HDC2024華為發布鴻蒙原生智能:AI與OS深度融合,開啟全新的AI時代

    6月21日,華為開發者大會2024(HDC.2024)召開。 HarmonyOS NEXT將AI與OS深度融合,構筑全新鴻蒙原生智能框架。大會現場,華為常務董事、終端BG董事長、智能汽車解決方案BU
    的頭像 發表于 06-24 09:28 ?720次閱讀
    HDC2024華為發布<b class='flag-5'>鴻蒙</b>原生智能:AI與<b class='flag-5'>OS</b>深度融合,開啟全新的AI時代

    Android項目轉為鴻蒙,真就這么簡單?

    ?最近做了一個有關Android轉換成鴻蒙的項目。**經不少開發者的反饋;許多公司的業務都增加了鴻蒙板塊。** 對此想分享一下這個項目轉換的流程結構,希望能夠給大家在工作中帶來一些幫助。
    的頭像 發表于 05-11 10:04 ?1831次閱讀
    <b class='flag-5'>Android</b>項目轉為<b class='flag-5'>鴻蒙</b>,真就這么簡單?

    鴻蒙OS崛起,鴻蒙應用開發工程師成市場新寵

    應用的形態也在發生著翻天覆地的變化。作為全球領先的移動操作系統和智能終端制造商,華為公司自主研發的鴻蒙OS應運而生,致力于構建一個統一的分布式操作系統,為各行各業的應用開發帶來全新的可能性。 一、鴻蒙
    發表于 04-29 17:32

    鴻蒙OS開發實例:【HarmonyHttpClient】網絡框架

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

    鴻蒙OS開發實戰:【網絡管理HTTP數據請求

    應用通過HTTP發起一個數據請求,支持常見的GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT方法。
    的頭像 發表于 04-01 16:31 ?772次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b>開發實戰:【<b class='flag-5'>網絡</b>管理HTTP數據<b class='flag-5'>請求</b>】

    鴻蒙OS開發實例:【窺探網絡請求

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

    鴻蒙原生應用開發-網絡管理HTTP數據請求

    request請求先返回。可以根據業務需要訂閱此消息。 4.調用該對象的request()方法,傳入http請求的url地址和可選參數,發起網絡請求。 5.按照實際業務需要,解析返回結
    發表于 03-29 17:51

    鴻蒙OS開發實例:【工具類封裝-http請求

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

    鴻蒙開發實戰:網絡請求庫【axios

    [Axios]?,是一個基于 promise 的網絡請求庫,可以運行 node.js 和瀏覽器中。本庫基于[Axios]原庫v1.3.4版本進行適配,使其可以運行在 OpenHarmo
    的頭像 發表于 03-25 16:47 ?4043次閱讀
    <b class='flag-5'>鴻蒙</b>開發實戰:<b class='flag-5'>網絡</b><b class='flag-5'>請求</b>庫【<b class='flag-5'>axios</b>】

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

    了有關華為鴻蒙的課程,包括清華大學、武漢大學、哈爾濱工業大學等等。據香港《南華早報》報道,當地時間1月3日,加拿大市場研究與咨詢機構TechInsights發布按照操作系統(OS)劃分的全球智能手機銷售
    發表于 02-28 10:29

    純血鴻蒙系統,拿什么與安卓、iOS比?

    ArkUI …… 2、鴻蒙進階 Stage模型 網絡、數據管理 一次開發多段部署 …… 3鴻蒙多媒體技術 音頻 視頻 相機 圖片 …… 4、鴻蒙
    發表于 02-21 21:04

    鴻蒙OS之UI架構解析

    發送get請求,然后更新articles數組。 aboutToAppear() { // 請求網絡數據 axios.get(url).then(response => { //
    發表于 02-20 15:36
    功夫百家乐官网的玩法技巧和规则| 银河百家乐的玩法技巧和规则 | 网上百家乐官网导航| 最新百家乐出千赌具| 平湖市| 百家乐官网稳赢玩法| 百家乐娱乐城棋牌| 金冠娱乐城最新网址| 百家乐官网的桌布| 百家乐免费送现金| 广州百家乐官网娱乐场| 传奇百家乐的玩法技巧和规则 | 庄闲和百家乐桌布| 网络百家乐官网公式打法| 太阳城宾馆| 百家乐官网必胜方程式| 大发888注册娱乐账号| 银河百家乐官网的玩法技巧和规则| 大发888游戏在线客服| 百苑百家乐官网的玩法技巧和规则 | 百家乐真钱牌九| 凤山县| 丽星百家乐的玩法技巧和规则 | 新时代百家乐的玩法技巧和规则| 可以玩百家乐官网的博彩公司| 大发888唯一官网| 江山百家乐官网的玩法技巧和规则| 香港六合彩85期开奖结果| 百家乐游戏平台架设| 太阳城百家乐官网网上| 百家乐娱乐礼金| 至尊百家乐官网赌场娱乐网规则| 三易博娱乐城| 新澳博百家乐娱乐城| 百家乐官网赌场牌路分析| bet365娱乐场下载| 赌博百家乐下载| 澳门百家乐官网怎么| 大发888网上支付| 真人百家乐代理分成| 百家乐官网智能投注系统|