鸿蒙OS封装【axios 网络哀求】(类似Android的Okhttp3)

打印 上一主题 下一主题

主题 926|帖子 926|积分 2780

 Okhttp.ets

  1. /**
  2. * 网络请求
  3. */
  4. import axios from '@ohos/axios'
  5. import httpConstants from '../net/HttpConstants'
  6. import errorCode from '../utils/errorCode'
  7. import toast from '../utils/ToastUtils'
  8. import router from '../utils/RouterUtils'
  9. import SPUtils from '../utils/SPUtils'
  10. import SpConstants from '../net/SpConstants'
  11. axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
  12. // 创建axios实例
  13. const service = axios.create({
  14.   baseURL:httpConstants.url,
  15.   timeout:10000
  16. })
  17. // request拦截器
  18. service.interceptors.request.use(async config => {
  19.   // 是否需要设置 token
  20.   const access_token = await SPUtils.get(SpConstants.accessToken,"")
  21.   if (access_token != "") {
  22.     config.headers['Authorization'] = 'Bearer ' + access_token // 让每个请求携带自定义token 请根据实际情况自行修改
  23.   }
  24.   return config
  25. }, error => {
  26.   console.log(error)
  27.   Promise.reject(error)
  28. })
  29. // 响应拦截器
  30. service.interceptors.response.use(res => {
  31.   // 未设置状态码则默认成功状态
  32.   const code = res.data.code || 200;
  33.   // 获取错误信息
  34.   const msg = errorCode[code] || res.data.msg || errorCode['default']
  35.   if (code === 401) {
  36.     toast.show("登录状态已过期,您可以继续留在该页面,或者重新登录")
  37.     router.goNot('pages/Login')
  38.   } else if (code === 500) {
  39.     toast.show(msg)
  40.     return Promise.reject(new Error(msg))
  41.   } else if (code !== 200) {
  42.     toast.show(msg)
  43.     return Promise.reject('error')
  44.   } else {
  45.     return res
  46.   }
  47. },
  48.   error => {
  49.     console.log('err' + error)
  50.     let { message } = error;
  51.     if (message == "Network Error") {
  52.       message = "后端接口连接异常";
  53.     }
  54.     else if (message.includes("timeout")) {
  55.       message = "系统接口请求超时";
  56.     }
  57.     else if (message.includes("Request failed with status code")) {
  58.       message = "系统接口" + message.substr(message.length - 3) + "异常";
  59.     }
  60.     toast.show(message)
  61.     return Promise.reject(error)
  62.   }
  63. )
  64. export default service
复制代码
鸿蒙应用开发知识更新在gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md可前往学习更多。



API接口调用方法

LoginAPI.ets

  1. import okHttp from '../utils/Okhttp'
  2. // 登录方法-POST方法
  3. export function login(username, password, code, uuid) {
  4.   const data = {
  5.     username,
  6.     password,
  7.     code,
  8.     uuid
  9.   }
  10.   return okHttp({
  11.     url: '/login',
  12.     method: 'post',
  13.     data: data
  14.   })
  15. }
复制代码
  1. // 获取用户详细信息-GET方法
  2. export function getInfo() {
  3.   return okHttp({
  4.     url: '/getInfo',
  5.     method: 'get'
  6.   })
  7. }
复制代码
Login.ets页面

  1. import {login,getInfo} from '../api/LoginAPI'
  2. login(this.userName,this.userPwd,this.userCode,this.uuid).then(res=>{
  3.   SPUtils.put(SpConstants.appUser,this.userName)
  4.   SPUtils.put(SpConstants.appPwd,this.userPwd)
  5.   SPUtils.put(SpConstants.accessToken,res.data.token)
  6. })
复制代码
最后呢,很多开发朋友不知道需要学习那些鸿蒙技术?鸿蒙开发岗位需要掌握那些焦点技术点?为此鸿蒙的开发学习必须要体系性的举行。

而网上有关鸿蒙的开发资料非常的少,假如你想学好鸿蒙的应用开发与体系底层开发。你可以参考这份资料,少走很多弯路,节省没须要的麻烦。由两位前阿里高级研发工程师团结打造《鸿蒙NEXT星河版OpenHarmony开发文档》内里内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(Harmony NEXT)技术知识点
假如你是一名Android、Java、前端等等开发人员,想要转入鸿蒙方向发展。可以直接领取这份资料辅助你的学习。下面是鸿蒙开发的学习路线图。

高清完备版请点击→《鸿蒙NEXT星河版开发学习文档》
针对鸿蒙成长路线打造的鸿蒙学习文档。话不多说,我们直接看具体资料鸿蒙(OpenHarmony )学习手册(共计1236页)与鸿蒙(OpenHarmony )开发入门教学视频,帮助大家在技术的门路上更进一步。
《鸿蒙 (OpenHarmony)开发学习视频》



《鸿蒙生态应用开发V2.0白皮书》



《鸿蒙 (OpenHarmony)开发底子到实战手册》

获取这份鸿蒙星河版学习资料,请点击→《鸿蒙NEXT星河版开发学习文档》

OpenHarmony北向、南向开发环境搭建



《鸿蒙开发底子》


  • ArkTS语言
  • 安装DevEco Studio
  • 运用你的第一个ArkTS应用
  • ArkUI声明式UI开发
  • .……


《鸿蒙开发进阶》

  • Stage模型入门
  • 网络管理
  • 数据管理
  • 电话服务
  • 分布式应用开发
  • 通知与窗口管理
  • 多媒体技术
  • 安全技能
  • 任务管理
  • WebGL
  • 国际化开发
  • 应用测试
  • DFX面向将来筹划
  • 鸿蒙体系移植和裁剪定制
  • ……


《鸿蒙开发实战》

  • ArkTS实践
  • UIAbility应用
  • 网络案例
  • ……


 获取这份鸿蒙星河版学习资料,请点击→《鸿蒙NEXT星河版开发学习文档》
总结

鸿蒙—作为国家主力推送的国产操作体系。部分的高校已经取消了安卓课程,从而开设鸿蒙课程;企业纷纷跟进启动了鸿蒙研发
而且鸿蒙是完全具备无与伦比的机会和潜力的;预计到年底将有 5,000 款的应用完成原生鸿蒙开发,将来将会支持 50 万款的应用。那么这么多的应用需要开发,也就意味着需要有更多的鸿蒙人才鸿蒙开发工程师也将会迎来爆发式的增长,学习鸿蒙势在必行!




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

拉不拉稀肚拉稀

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表