Tauri 应用中发送 http 请求


字数:383 阅读时长:1分钟 阅读:85

最近基于 TauriReact 开发一个用于 http/https 接口测试的工具 Get Tools,其中使用了 tauri 提供的 fetch API,在开发调试过程中遇到了一些权限和参数问题,在此记录下来。

Tauri Http

权限配置

tauri 应用中,如果想要使用 httpfetch API 发送请求,必须配置相应的权限和 scope
否则会出现类似这样的报错:url not allowed on the configured scope: http://xxx.com/xxx

因此,需要在 tauri.conf.json 文件中进行配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"tauri": {
"allowlist": {
// ...

"http": {
"all": true,
"request": true,
"scope":[
"http://**",
"https://**"
]
}

// ...
}
}
}

如上所示,将 httpscope 字段配置了 http://**https://** 匹配规则,就可以发送任意的 http/ https 的接口请求了,并且不存在跨域问题。

http 请求封装

平常习惯了使用 ajaxaxios 的请求方法,所以这里对 tauri 提供的 fetch API 进行基础封装,统一 GETPOST 的请求形式和参数配置,让使用更丝滑。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// http.js

import { fetch, ResponseType, Body } from '@tauri-apps/api/http'

// https://tauri.app/zh-cn/v1/api/js/http#fetch
export const http = (opts = {}) => {
return new Promise((resolve, reject) => {
const { url, method, query, data, headers, callback } = opts
fetch(url, {
method: method || 'GET',
headers: {
'content-type': 'application/json',
...headers,
},
responseType: ResponseType.JSON,
timeout: 60000,
query: query,
body: Body.json({
...data,
}),
})
.then((res) => {
callback && callback(res)
resolve(res)
})
.catch((e) => {
reject(e)
})
})
}

欢迎访问:天问博客

本文作者: Tiven
发布时间: 2023-07-07
最后更新: 2023-08-01
本文标题: Tauri 应用中发送 http 请求
本文链接: https://www.tiven.cn/p/959691bf/
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可。转载请注明出处!
欢迎留言,提问 ^_^
个人邮箱: tw.email@qq.com
notification icon
博客有更新,将会发送通知给您!