二、Tauri 利用(http请求 axios)

打印 上一主题 下一主题

主题 834|帖子 834|积分 2502

1.启用该功能

        在tauri.conf.json文件中启用该功能,设置要请求的API路径,多个API的情况利用逗号隔开就可以了
  1. {
  2.  "tauri":{
  3.    "allowlist":{
  4.      "http":{
  5.        "all": true,
  6.        "request": true,
  7.        "scope":["http://**", "https://**"]
  8.      }
  9.    }
  10.   }
  11. }
复制代码
2.axios-tauri-api-adapter

        如果请求接口利用的是axios,需要利用第三方插件 axios-tauri-api-适配器 ,否则打包后的项目无法请求到接口,这里更保举利用官方的http请求
        ①安装
  1. npm install axios-tauri-api-adapter
复制代码
        ②导入
  1. import axios from 'axios';
  2. import axiosTauriApiAdapter from 'axios-tauri-api-adapter';
复制代码
        ③利用
  1. const client = axios.create({ adapter: axiosTauriApiAdapter });
复制代码
3.封装http

        开辟情况不需要利用 adapter: axiosTauriApiAdapter ,解释即可;生产情况需要利用 adapter: axiosTauriApiAdapter
        index.ts
  1. import axios from 'axios';
  2. import axiosTauriApiAdapter from 'axios-tauri-api-adapter';import { message } from 'ant-design-vue';​const http = axios.create({    // 本地请求服务端    baseURL: 'http://127.0.0.1:8001/api/v1/',    timeout: 10000,    headers: {        Accept: 'application/json, text/plain, */*',        'Content-Type': 'application/json',        'X-Requested-With': 'XMLHttpRequest',    },    adapter: axiosTauriApiAdapter,});​// 添加请求拦截器http.interceptors.request.use(    (config) => {        // 在发送请求之前做些什么        return config;    },    (error) => {        return Promise.reject(error);    });​// 添加相应拦截器http.interceptors.response.use(    (response) => {        // 2xx 范围内的状态码都会触发该函数        return response;    },    (error) => {        const { response } = error;        if (response) {            // 请求已发出,但是不在2xx的范围            return Promise.reject(response.data);        } else {            message.warning('网络连接异常,请稍后再试!');        }    });​export function request<T>(data: any): Promise<T> {    return new Promise((resolve, reject) => {        const promise = http(data);        //处理返回        promise            .then((res) => {                resolve(res.data);            })            .catch((err) => {                reject(err.data);            });    });}
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

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

本版积分规则

前进之路

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表