uni-app+vuecli+luch-request网络请求二次封装

  • 一、luch-request是什么?
  • 二、使用步骤
    • 1.下载并引入
    • 2.创建 httpload.js 文件
    • 3.创建 api.js 文件
    • 4.页面中调用
  • 总结

前端小白,以下内容为个人整理,原文请参考https://blog.csdn.net/r657225738/article/details/110549308

一、luch-request是什么?

uniapp自带网络请求request功能不满足开发使用,luch-request基于 Promise 对象实现更简单的 request 使用方式,支持请求和响应拦截,luch-request功能类似axios,本文在vue-cli3构建的项目中使用

二、使用步骤

1.下载并引入

我是通过npm下载,每个项目的需求各有偏差,务必根据自己的项目调整相关配置,详情详见官网https://www.quanzhan.co/luch-request/

通过npm下载

npm i luch-request -S

vue-cli3构建项目babel,config文件合并了,所以需要在根路径下创建vue.config.js 文件,增加以下内容

// vue.config.jsmodule.exports = {transpileDependencies: ['luch-request']}

2.创建 httpload.js 文件

在src目录下创建http文件夹并创建httpload.js 文件,将以下代码放入httpload.js中

import Request from 'luch-request'//npm下载引入luch-request// import qs from 'qs'
const http = new Request({baseURL: "https://elm.cangdu.org/", //设置请求的base urltimeout: 300000, //超时时长5分钟,header: {'Content-Type': 'multipart/form-data;application/json;charset=UTF-8;'}
})//请求拦截器
http.interceptors.request.use((config) => { // 可使用async await 做异步操作const token = uni.getStorageSync('token');if (token) {config.headers.common["Authorization"] = 'Bearer ' + token;}if (config.method === 'POST') {config.data = JSON.stringify(config.data);}return config
}, error => {return Promise.resolve(error)
})// 响应拦截器
http.interceptors.response.use((response) => {console.log(response)return response
}, (error) => {//未登录时清空缓存跳转if (error.statusCode == 401) {uni.clearStorageSync();uni.switchTab({url: "/pages/index/index.vue"})}return Promise.resolve(error)
})
export default http;

3.创建 api.js 文件

在src目录下创建api文件夹并创建index.js 文件,将以下代码放入index.js中

// import request from '@/http/httpload.js'
import request from '../http/httpload'//导入http下的httpload.js/* 测试Api */export default{// get请求 可以拼接url或者传入数据对象 二选一getData(url,data){// 传入的data对象  {ip:'121.00.00.01'}; return request.get( url,{params:data});},// post请求postData(url,data){// 传入的data对象  {ip:'xxxxxx'}; return request.post(url,data);},// put请求putData(url,data){// 传入的data对象  {ip:'xxxxxx'}; return request.put(url,data);},// delete请求deleteData(url,data){// 传入的data对象  {ip:'xxxxxx'}; return request.delete(url,data);}}

4.页面中调用


<template><div><button @click="getData">获取get数据</button></div>
</template>
<script>
import TestApi from "@/api/index.js";export default {methods: {getData() {var url = "v1/pois"; //url地址var data = { city_id: "1", keyword: 1, type: "search" }; //参数TestApi.getData(url, data).then((res) => {console.log(res);}).catch((error) => {console.log(error);});},},
};
</script>

总结

luch-request使用方法相关推荐

  1. java note项目_Java Request.setNote方法代码示例

    import org.apache.catalina.connector.Request; //导入方法依赖的package包/类 /** * Perform single-sign-on suppo ...

  2. Spring中获取request的方法及其线程安全性分析

    在使用Spring MVC开发Web系统时,经常需要在处理请求时使用request对象,比如获取客户端ip地址.请求的url.header中的属性(如cookie.授权信息).body中的数据等.由于 ...

  3. SpringMvc 400 Bad Request解决方法

    SpringMvc 400 Bad Request解决方法 参考文章: (1)SpringMvc 400 Bad Request解决方法 (2)https://www.cnblogs.com/shiz ...

  4. request.getPathInfo() 方法的作用

    request.getPathInfo() 方法的作用 作者:joejoe1991 日期:2008-07-19 request.getPathInfo(); 这个方法返回请求的实际URL相对于请求的s ...

  5. python request microsoft graph_Python request.headers方法代码示例

    本文整理汇总了Python中flask.request.headers方法的典型用法代码示例.如果您正苦于以下问题:Python request.headers方法的具体用法?Python reque ...

  6. 为什么我的JSP文件使用不了request.getParameter()方法

    为什么我的JSP文件使用不了request.getParameter()方法

  7. request.getParameter()方法

    request.getParameter()方法:1.获取通过http协议提交过来的数据.       通过容器的实现来取得通过get或者post方式提交过来的数据 2.request.getPara ...

  8. ASP——Request.Form()方法获取POST提交方式的表单中文乱码解决方案

    方法一 直接用request.Form()获取的是所有数据所以会有乱码(具体原因不祥) 用 Foreach obj in Request.Form Response.write obj &&q ...

  9. jenkins-RestAPI调用出现Error 403 No valid crumb was included in the request解决方法

    方法一: 在jenkins 的Configure Global Security下 , 取消"防止跨站点请求伪造(Prevent Cross Site Request Forgery exp ...

  10. request请求方法

    1.获取请求方法 request.method 2.获取去掉参数的url request.base_url 3.获取只有主机和端口号的url request.host_url 4.获取完整的请求地址 ...

最新文章

  1. inno setup修改properties格式内容_linux内核修炼之setup
  2. 小白如何在Windows如何安装双系统Centos7
  3. python笔记:jieba(中文分词)
  4. VS2010中使用正则表达式替换时无法使用回车符的解决方法
  5. VTK:IO之ImageReader2Factory
  6. python根据相关系数绘制热力图
  7. windows下nginx+mono+fastCGI部署asp.net网站
  8. ProtoBuf生成EmmyLua注解API提示文件(支持复杂的嵌套结构)
  9. PowerDesigne 建立概念数据模型
  10. Kiwi for Gmail Mac(mac gmail邮箱客户端)
  11. android+google+play,打开链接的google play商店在手机版android
  12. Java中的Enum的简单使用
  13. 咸鱼Micropython—LED用法
  14. HTMl页面加入落叶下雨动画,HTML5和Webkit实现树叶飘落动画
  15. STM32 ST-LINK Utility介绍、下载、安装、使用方法
  16. CF546C. Soldier and Cards(队列+模拟)
  17. jasper report分组显示
  18. 【前端实例代码】使用 HTML CSS 和 JavaScript 实现具有彩色发光霓虹灯效果的数字时钟|前端开发 网页制作 基础入门教程
  19. 2020年职业学计算机专业饱和,2020年计算机专业人才饱和?找不到工作了?传智专修学院告诉你答案...
  20. java中aop和aoc的区别_法国AOC、AOP、VDP和IGP葡萄酒有什么区别?

热门文章

  1. 论文阅读 (65):RePaint: Inpainting using Denoising Diffusion Probabilistic Models
  2. java attribute属性_[Java教程]JS Attribute属性操作
  3. 【教学类-36-07】20230707对称蝴蝶(midjounery-niji)(涂色、裁剪、游戏(飞舞的蝴蝶))
  4. IP-route管理路由
  5. 安装Ubuntu14.04教程
  6. 电商项目_ods层建设
  7. gm工具怎样连接mysql_Gm工具2.0连接不上,求助
  8. Android之简单文件管理器
  9. 单播 组播 广播的区别
  10. 全国计算机等级考试二级Python语言程序设计模拟试卷D卷综合应用题