uniapp封装一个网络请求的服务,包括拦截器,请求头等,适用于抖音小程序,各种小程序。

这篇具有很好参考价值的文章主要介绍了uniapp封装一个网络请求的服务,包括拦截器,请求头等,适用于抖音小程序,各种小程序。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

今天用uniapp写抖音小程序的时候,发现抖音小程序不支持axios(也许是我不会玩哈),那使用uniapp提供的请求方式总是可以的,毕竟uniapp对于小程序的友好度那是真没的说呀。那每个请求都写一套请求代码也太麻烦了,封装一个服务吧。直接上代码,我们把下面这个文件叫做http.js吧,里面的注释也很明白,伸手就能ctrl c v:

const BASE_URL = 'https://用你自己的url替换'; // 设置基本请求 URL

const requestInterceptor = (config) => {
    // 添加请求拦截逻辑
    // 在这里可以对请求进行处理,例如添加请求头、签名等
    config.header = {
        ...config.header
    };
    return config;
};

const responseInterceptor = (response) => {
    // 添加响应拦截逻辑
    // 在这里可以对响应进行处理,例如处理错误码、数据解析等
    if (response.statusCode === 200) {
        return response.data;
    } else {
        throw new Error('Request failed with status code ' + response.statusCode);
    }
};


const request = (config) => {
    const requestConfig = {
        ...config,
        header: requestInterceptor(config).header,
        url: BASE_URL + config.url,
    };

    return new Promise((resolve, reject) => {
        uni.request({
            ...requestConfig,
            success: (res) => {
                try {
                    const responseData = responseInterceptor(res);
                    resolve(responseData);
                } catch (error) {
                    reject(error);
                }
            },
            fail: (err) => {
                reject(err);
            },
        });
    });
};

export const get = (url, params = {}) => {
    const config = {
        url,
        method: 'GET',
        data: params,
    };

    return request(config);
};

export const post = (url, data = {}) => {
    const config = {
        url,
        method: 'POST',
        data,
    };

    return request(config);
};

cv以后就能直接用:

import { get, post } from '@/http.js';

// 发送 GET 请求
get('/users', { id: 1 })
  .then((response) => {
    // 处理成功的响应
  })
  .catch((error) => {
    // 处理请求错误
  });

// 发送 POST 请求
post('/users', { name: 'John', age: 25 })
  .then((response) => {
    // 处理成功的响应
  })
  .catch((error) => {
    // 处理请求错误
  });

当然如果用vue的话,你可以将get和post这两个方法在main.js挂载到Vue实例原型上以供全局使用,就不用到处import了。

抖音小程序文档中的tt对象都可以用uni对象来替换,用tt对象调用的方法都可以用uni调用

题外话:小程序开发的资料比较少,多说一句小程序的内容,抖音小程序其实和微信小程序差不多,微信小程序毕竟是各大小程序的鼻祖,大同小异,所以也是推荐大家直接用uniapp开发,虽然uniapp性能上不如原生安卓ios或者flutter应用,但是论跨平台和开发效率,还是支持vue的uniapp要强很多,开发一套代码可以同时打包各个小程序、安卓、h5、ios(需要使用mac os打包)等,在这个方面,他的效率很高的,至于有人骂uniapp全是恶心人的广告啥的,我觉得这很正常,至少从一个方面也是反应了开发者也是生活不易,已然开源,也还得靠广告费挣点钱,这个是完全可以理解甚至是可以支持一把的,很多市场插件也都是看一个广告就能免费用了,挺好的,好的产品愿意支持。

如果小程序的需求比较多,我后面会出一些uni小程序的入门教程。文章来源地址https://www.toymoban.com/news/detail-726732.html

到了这里,关于uniapp封装一个网络请求的服务,包括拦截器,请求头等,适用于抖音小程序,各种小程序。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Vue 网络处理 - axios 异步请求的使用,请求响应拦截器(最佳实践)

    Vue 网络处理 - axios 异步请求的使用,请求响应拦截器(最佳实践)

    目录 一、axiox 1.1、axios 简介 1.2、axios 基本使用 1.2.1、下载核心 js 文件. 1.2.2、发送 GET 异步请求 1.2.3、发送 POST 异步请求 1.2.4、发送 GET、POST 请求最佳实践 1.3、请求响应拦截器 1.3.1、拦截器解释 1.3.2、请求拦截器的使用 1.3.3、响应拦截器的使用 1.3.4、拦截器在 Vue 脚手架中的

    2024年02月04日
    浏览(7)
  • Vue3 网络请求——axios 高级用法之 axios 拦截器实战与并发请求

    Vue3 网络请求——axios 高级用法之 axios 拦截器实战与并发请求

    Axios 是一个流行的基于 Promise 的 HTTP 客户端库,用于在浏览器和 Node.js 中发出 HTTP 请求。 Axios 还支持请求和响应的拦截器。接下来通过这篇文章,我们一起来学习和了解一下 Axios 拦截器和并发请求,通过实际代码来介绍如何使用 Axios 拦截器。 拦截器会在发生响应请求之前和

    2024年02月10日
    浏览(8)
  • Axios基本使用,为学习后续的Vue服务【发送请求+并发请求+前端拦截器】

    目录 1、项目中引入Axios 2、使用Axios发送请求 2.1、例:发送GET请求 2.2、例:发送POST请求 3、axios并发请求 4、拦截器 注:个人学习笔记,因自己学过后端,所以有关后端的代码,我在这里就不展示了~ 不了解后端的宝子,也不会耽误学习,因为公司里会有写好的接口文档,直

    2024年02月02日
    浏览(27)
  • 【微服务笔记06】微服务组件之OpenFeign配置信息及RequestInterceptor请求拦截器

    【微服务笔记06】微服务组件之OpenFeign配置信息及RequestInterceptor请求拦截器

    这篇文章,主要介绍微服务组件之OpenFeign相关配置信息及RequestInterceptor请求拦截器的使用。 目录 一、OpenFeign注解和配置信息 1.1、常见注解 (1)@EnableFeignClients (2)@FeignClient 1.2、常见配置信息 二、RequestInterceptor请求拦截器 2.1、实现RequestInterceptor接口 2.2、全局配置拦截器

    2024年02月14日
    浏览(7)
  • uniapp 微信小程序 封装axios 包含请求拦截、响应拦截、无感刷新令牌功能

    前言: 1、为什么不适用uniapp自带的请求功能? 答:uniapp自带的请求功能,再刷新了令牌后,重新请求返回的数据无法返回给发起请求的方法。也就是说,刷新令牌后重新发起的请求和第一次发起请求的方法是割裂的。 2、封装文件中,我设置了无感刷新令牌功能。我后台的

    2024年02月03日
    浏览(12)
  • 前后端交互系列之Axios详解(包括拦截器)

    前后端交互系列之Axios详解(包括拦截器)

    Axios是前端最流行的交互工具。所以本节内容将对Axios进行详细讲解。 本节内容需要由Ajax的基础及Promise的基础。这两篇文章可以参考: 前端后端交互系列之原生Ajax的使用 前后端交互系列之promise详解 如果想快速了解axios也可以查看(本篇文章的深度是更高的): 浅析axios原

    2024年02月06日
    浏览(9)
  • 【AntDesign】封装全局异常处理-全局拦截器

    【AntDesign】封装全局异常处理-全局拦截器

    目录 场景 1 定义全部异常处理类 2 替换request引用 3 代码优化 总结 本文前端用的是阿里的Ant-Design框架,其他框架也有全局拦截器,思路是相同,具体实现自行百度下吧 因为每次都需要调接口,都需要单独处理异常情况(code !=0),因此前端需要对后端返回的通用响应进行统

    2024年02月08日
    浏览(9)
  • VUE3 请求拦截器 响应拦截器

    1,导入axios  (使用axios进行接口的请求,页面发送http请求,很多情况我们要对请求和其响应进行特定的处理,如:判断token,设置请求头。如果请求数非常多,单独对每一个请求进行处理会变得非常麻烦,程序的优雅性也会大打折扣。所以axios为开发者提供了这样一个API:拦

    2024年02月16日
    浏览(15)
  • anxios封装拦截器的两种方式

    使用方法 讲解:函数式通过调用方法创建axios实例,通过参数传入基础url,超时时间等定义参数。 使用时比较接近axios写法。 使用方法 类方法: 通过创建一个类,传入baseUrl,超时时间等自定义参数。使用时候调用类的方法实现创建axios实例。 两种方法写法不同,功能相同。

    2024年01月19日
    浏览(10)
  • axios 请求和响应拦截器

    1. 创建实例 使用 axios.create() 使用自定义配置创建一个 axios 实例。 2. 拦截器 在请求或响应被 then 或者 catch 处理前拦截他们,拦截分为请求拦截和响应拦截。 2.1 request 拦截器,全局添加市场信息 removeMarketCode 是否移除市场信息,默认不移除; 根据上述代码可以看到,市场信

    2024年02月09日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包