Okhttp.ets
/**
* 網(wǎng)絡(luò)請(qǐng)求
*/
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 // 讓每個(gè)請(qǐng)求攜帶自定義token 請(qǐng)根據(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;
// 獲取錯(cuò)誤信息
const msg = errorCode[code] || res.data.msg || errorCode['default']
if (code === 401) {
toast.show("登錄狀態(tài)已過(guò)期,您可以繼續(xù)留在該頁(yè)面,或者重新登錄")
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)接口請(qǐng)求超時(shí)";
}
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
})
}
// 獲取用戶(hù)詳細(xì)信息-GET方法
export function getInfo() {
return okHttp({
url: '/getInfo',
method: 'get'
})
}
Login.ets頁(yè)面
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)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
鴻蒙OS
+關(guān)注
關(guān)注
0文章
193瀏覽量
5485
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
拓維信息旗下在鴻OS 3.0 讓OpenClaw開(kāi)箱即用
AIModelSIG組長(zhǎng)單位,依托基于開(kāi)源鴻蒙自研的在鴻OS3.0底層能力,率先完成OpenClaw的深度適配與預(yù)集成,推出搭載融合能力的AIBOX(邊緣AI小站)
谷歌Android Studio Otter 3功能更新發(fā)布
我們很高興地宣布,Android Studio Otter 3 功能更新穩(wěn)定版現(xiàn)已發(fā)布!本次更新干貨滿滿,不僅重磅升級(jí)了 Android Studio 中的智能體工作流,還為開(kāi)發(fā)者提供了更高的靈活性和掌控力,助力大家輕松利用 A
開(kāi)源鴻蒙技術(shù)大會(huì)2025丨OS內(nèi)核與視窗分論壇:筑基開(kāi)源鴻蒙核心內(nèi)核,共拓視窗技術(shù)邊界
開(kāi)源鴻蒙技術(shù)大會(huì)2025 OS內(nèi)核與視窗分論壇在湖南長(zhǎng)沙國(guó)際會(huì)議中心圓滿舉行。來(lái)自西北工業(yè)大學(xué)、浙江大學(xué)、廈門(mén)大學(xué)、華為等高校和企業(yè)的學(xué)者專(zhuān)家齊聚一堂,圍繞鴻蒙內(nèi)核通信機(jī)制、智能渲染、內(nèi)存緩存優(yōu)化、端云協(xié)同備份及空間視窗架構(gòu)等前
開(kāi)源鴻蒙技術(shù)大會(huì)2025丨OS原生智能分論壇圓滿舉辦
開(kāi)源鴻蒙技術(shù)大會(huì)2025 OS原生智能分論壇在湖南長(zhǎng)沙國(guó)際會(huì)議中心圓滿舉行。來(lái)自學(xué)術(shù)界與產(chǎn)業(yè)界的多位專(zhuān)家學(xué)者齊聚一堂,圍繞端側(cè)AI、智能體(Agent)技術(shù)、大模型高效推理等前沿議題展開(kāi)深度交流
手持機(jī)PDA三大操作系統(tǒng)Android / 開(kāi)源鴻蒙 / Windows對(duì)比
本文全面解析手持機(jī)PDA主流操作系統(tǒng)(Android和開(kāi)源鴻蒙和Windows)的技術(shù)特點(diǎn)、區(qū)別及適用場(chǎng)景,幫助企業(yè)根據(jù)自身業(yè)務(wù)需求選擇合適的系統(tǒng)。包含多維度對(duì)比表格和實(shí)用選型建議。
【匯思博SEEK100開(kāi)發(fā)板試用體驗(yàn)】在開(kāi)發(fā)板鴻蒙OS搭建QT開(kāi)發(fā)環(huán)境
來(lái)訪問(wèn)硬件資源,例如使用鴻蒙的設(shè)備管理 API 來(lái)獲取攝像頭設(shè)備實(shí)例,然后在 Qt 代碼中進(jìn)行調(diào)用。又例如,如果要實(shí)現(xiàn)網(wǎng)絡(luò)通信功能,可以使用 Qt 的網(wǎng)絡(luò)模塊,如 QTcpSocket 或
發(fā)表于 08-24 18:34
中軟國(guó)際正式啟動(dòng)鴻蒙軟件工場(chǎng)
自2024年HarmonyOS NEXT版本起,HarmonyOS應(yīng)用框架層更新為鴻蒙“單框架”,正式告別了對(duì)Android應(yīng)用框架、內(nèi)核的依賴(lài)。2025年,鴻蒙生態(tài)進(jìn)入規(guī)模化發(fā)展期,各類(lèi)鴻蒙
ArkUI-X與Android聯(lián)動(dòng)編譯開(kāi)發(fā)指南
ArkTS產(chǎn)物到Android工程中。
其功能主要包括:
1.手動(dòng)配置編譯ArkTS源碼開(kāi)關(guān)
2.手動(dòng)配置編譯module
3.手動(dòng)配置文件輸出路徑
編譯配置說(shuō)明
配置編譯ArkTS腳本開(kāi)關(guān)
在
發(fā)表于 06-16 22:55
鴻蒙5開(kāi)發(fā)寶藏案例分享---Web開(kāi)發(fā)優(yōu)化案例分享
\' },
};
return interceptResponse; // 返回緩存數(shù)據(jù),WebView不再發(fā)起網(wǎng)絡(luò)請(qǐng)求
}
return null; // 不攔截,WebView按原流程請(qǐng)求
});
// 步驟
發(fā)表于 06-12 17:20
鴻蒙5開(kāi)發(fā)寶藏案例分享---點(diǎn)擊完成時(shí)延分析
:
動(dòng)畫(huà)時(shí)長(zhǎng)
完成時(shí)延
100ms
99ms
1000ms
1007ms
優(yōu)化建議 :
默認(rèn)300ms可縮減至150-200ms
高頻操作區(qū)域建議≤100ms
使用硬件加速動(dòng)畫(huà)
?** 案例3:網(wǎng)絡(luò)請(qǐng)求
發(fā)表于 06-12 17:03
鴻蒙5開(kāi)發(fā)寶藏案例分享---應(yīng)用架構(gòu)實(shí)戰(zhàn)技巧
└── network/ # 網(wǎng)絡(luò)請(qǐng)求封裝
關(guān)鍵代碼示例:
1. 公共能力層抽離網(wǎng)絡(luò)請(qǐng)求
// common/network/Requ
發(fā)表于 06-12 16:14
鴻蒙Next實(shí)現(xiàn)瀑布流布局
為了實(shí)現(xiàn)類(lèi)似真實(shí)瀑布流不斷加載新數(shù)據(jù)的效果,可以結(jié)合鴻蒙的 LazyForEach 組件,在滾動(dòng)到列表底部時(shí)觸發(fā)數(shù)據(jù)加載邏輯
六、網(wǎng)絡(luò)權(quán)限
// config.json
{
\"module
發(fā)表于 06-10 14:17
鴻蒙5開(kāi)發(fā)寶藏案例分享---自由流轉(zhuǎn)的拖拽多屏聯(lián)動(dòng)
;gt;onScrollEnd</span>事件追加數(shù)據(jù)
?** 案例三:網(wǎng)絡(luò)請(qǐng)求封裝(Retrofit風(fēng)格)**
為什么要封裝 :官方HttpTask寫(xiě)回調(diào)太反人類(lèi)
發(fā)表于 06-03 18:50
極海APM32F407 uc/os3學(xué)習(xí)筆記之任務(wù)管理介紹
最近了解了uc/os3這個(gè)操作系統(tǒng),上篇介紹了uc/os3如何正確移植到APM32F407開(kāi)發(fā)板上,根據(jù)我最近學(xué)到的一些知識(shí),這篇文章主要介紹一下uc/os3中的一些簡(jiǎn)單的任務(wù)管理API以及如何使用。
開(kāi)源啦!!!基于鴻蒙ArkTS封裝的圖表組件《McCharts》,大家快來(lái)一起共創(chuàng)
Hello;大家好,我是陳楊。好久沒(méi)更新了,首先是自己本職工作比較忙,基本沒(méi)時(shí)間寫(xiě)作。其次就是學(xué)習(xí)技術(shù),自學(xué)鴻蒙ArkTS語(yǔ)言已經(jīng)接近半年了,也算半路出師了,這次將分享我封裝的組件庫(kù),所以有啥講錯(cuò)
發(fā)表于 03-15 15:21
鴻蒙OS封裝【axios 網(wǎng)絡(luò)請(qǐng)求】(類(lèi)似Android的Okhttp3)
評(píng)論