当前位置:   article > 正文

uniapp封装网络请求

uniapp封装网络请求

1、封装request.js请求

 封装的过程中,可以根据自己的项目需求,在请求接口添加一些loading和后端返回的状态码做判断处理。

  1. export default {
  2. common: {
  3. baseUrl:https://xxxxx,//请求数据的域名
  4. data: {},
  5. header: {
  6. "Content-Type": "application/x-www-form-urlencoded"
  7. },
  8. method: 'GET',
  9. dataType: 'json',
  10. },
  11. request(options = {}) {
  12. // 判断是自带基础的请求
  13. options.url = options.baseUrl + options.url
  14. options.data = options.data || this.common.data;
  15. options.header = options.header || this.common.header;
  16. options.dataType = options.dataType || this.common.dataType;
  17. return new Promise((resolve, reject) => {
  18. if (options.isShowLoading) {
  19. uni.showLoading({
  20. title: '加载中...',
  21. })
  22. }
  23. uni.request({
  24. ...options,
  25. success: (res) => {
  26. // console.log('res',res)
  27. if (res.statusCode && res.statusCode != 200) {
  28. common.showToast("api错误:错误码" + res.statusCode, 'none', 3000)
  29. return;
  30. }
  31. if (res.data.error_code != 0) {
  32. if (res.data.error_code = 70006) {
  33. console.error(res.data.error)
  34. } else {
  35. setTimeout(() => {
  36. common.showToast(res.data.error, 'none', 3000)
  37. }, 100)
  38. console.error(res.data.error)
  39. }
  40. }
  41. resolve(res.data);
  42. },
  43. fail: (err) => {
  44. reject(err.data)
  45. },
  46. complete: (res) => {
  47. if (options.isShowLoading) {
  48. uni.hideLoading();
  49. }
  50. }
  51. })
  52. })
  53. }
  54. }

2、新建一个api.js文件,分类存放我们的接口请求

  1. import http from '@/utlis/request.js'
  2. const request=http.request;
  3. // 获取用户usercode信息
  4. export function GetUser(data){
  5. return http.request({
  6. url:'/WxUser/OnLogin',
  7. data:data,
  8. method:'POST',
  9. isShowLoading:false
  10. })
  11. }
  12. // 更新用户头像昵称具体信息
  13. export function UpdateInfo(data){
  14. return http.request({
  15. url:'/WxUser/UpdateInfo',
  16. data:data,
  17. method:'POST',
  18. isShowLoading:true
  19. })
  20. }

3、在页面导入以及使用

  1. import {UpdateInfo} from '@/api/login.js'
  2. //更新用户信息
  3. async updateUserInfo(userInfo, WXUserInfo) {
  4. if (userInfo && WXUserInfo) {
  5. var params = {
  6. isNewUser: userInfo.isNewUser,
  7. usercode: userInfo.usercode,
  8. encryptedData: WXUserInfo.encryptedData,
  9. };
  10. let {data,error_code,error} = await UpdateInfo(params);
  11. if(error_code===0){
  12. let temp = Object.assign(app.globalData.userInfo,data);
  13. uni.setStorageSync('userInfo', temp);
  14. app.globalData.userInfo = temp;
  15. app.globalData.isLogin = true;
  16. this.show=false
  17. // 返回上一页
  18. uni.navigateBack({
  19. delta: 1
  20. });
  21. }else{
  22. uni.removeStorageSync('WXUserInfo')
  23. uni.showToast({
  24. title: "错误" + error,
  25. icon: 'none',
  26. });
  27. }
  28. }
  29. },

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/231287
推荐阅读
相关标签
  

闽ICP备14008679号