HTTP
访问用 Rust 编写的 HTTP 客户端。
当 tauri.conf.json
中的 build.withGlobalTauri
设置为 true
时,也可以使用 window.__TAURI__.http
访问此软件包。
必须在 tauri.conf.json
上允许使用 API。
{
"tauri": {
"allowlist": {
"http": {
"all": true, // enable all http APIs
"request": true // enable HTTP request API
}
}
}
}
建议仅允许使用您为获得最佳捆绑大小和安全性而使用的 API。
安全性
此 API 具有作用域配置,它强制要求你限制可使用 glob 模式访问的 URL 和路径。
例如,此作用域配置仅允许向 tauri-apps
组织的 GitHub API 发出 HTTP 请求
{
"tauri": {
"allowlist": {
"http": {
"scope": ["https://api.github.com/repos/tauri-apps/*"]
}
}
}
}
尝试使用作用域中未配置的 URL 执行任何 API 时,由于访问被拒绝,将导致 promise 拒绝。
枚举
ResponseType
自: 1.0.0
枚举成员
名称 | 类型 | 定义于 |
---|---|---|
3 | http.ts:74 | |
1 | http.ts:72 | |
2 | http.ts:73 |
类
Body
用于 POST 和 PUT 请求的主体对象。
自: 1.0.0
属性
payload
payload:
unknown
定义于: http.ts:139
type
type:
string
定义于: http.ts:138
方法
bytes
静态
bytes(bytes
:Iterable
<number
> |ArrayBuffer
|ArrayLike
<number
>):Body
创建一个新的字节数组主体。
示例
import { Body } from "@tauri-apps/api/http"
Body.bytes(new Uint8Array([1, 2, 3]));
参数
名称 | 类型 | 描述 |
---|---|---|
bytes | Iterable <number > | ArrayBuffer | ArrayLike <number > | 正文字节数组。 |
返回:Body
正文对象,可用于 POST 和 PUT 请求。
form
创建一个新的表单数据正文。表单数据是一个对象,其中每个键都是条目名称,而值是字符串或文件对象。
默认情况下,它设置 application/x-www-form-urlencoded
Content-Type 头,但如果启用了 Cargo 功能 http-multipart
,你可以将其设置为 multipart/form-data
。
请注意,必须在 fs
允许列表范围内允许文件路径。
示例
import { Body } from "@tauri-apps/api/http"
const body = Body.form({
key: 'value',
image: {
file: '/path/to/file', // either a path or an array buffer of the file contents
mime: 'image/jpeg', // optional
fileName: 'image.jpg' // optional
}
});
// alternatively, use a FormData:
const form = new FormData();
form.append('key', 'value');
form.append('image', file, 'image.png');
const formBody = Body.form(form);
参数
名称 | 类型 | 描述 |
---|---|---|
data | FormInput | 正文数据。 |
返回:Body
正文对象,可用于 POST 和 PUT 请求。
json
创建一个新的 JSON 正文。
示例
import { Body } from "@tauri-apps/api/http"
Body.json({
registered: true,
name: 'tauri'
});
参数
名称 | 类型 | 描述 |
---|---|---|
data | Record <any , any > | 正文 JSON 对象。 |
返回:Body
正文对象,可用于 POST 和 PUT 请求。
text
Static
text(value
:string
):Body
创建一个新的 UTF-8 字符串正文。
示例
import { Body } from "@tauri-apps/api/http"
Body.text('The body content as a string');
参数
名称 | 类型 | 描述 |
---|---|---|
value | string | 正文字符串。 |
返回:Body
正文对象,可用于 POST 和 PUT 请求。
Client
自: 1.0.0
属性
id
id:
number
定义在: http.ts:316
方法
delete
delete<
T
>(url
:string
,options?
:RequestOptions
):Promise
<Response
<T
>>
发出 DELETE 请求。
示例
import { getClient } from '@tauri-apps/api/http';
const client = await getClient();
const response = await client.delete('http://localhost:3003/users/1');
类型参数
T
参数
名称 | 类型 |
---|---|
url | string |
options? | RequestOptions |
drop
drop():
Promise
<void
>
删除客户端实例。
示例
import { getClient } from '@tauri-apps/api/http';
const client = await getClient();
await client.drop();
返回: Promise
<void
>
get
get<
T
>(url
:string
,options?
:RequestOptions
):Promise
<Response
<T
>>
发出 GET 请求。
示例
import { getClient, ResponseType } from '@tauri-apps/api/http';
const client = await getClient();
const response = await client.get('http://localhost:3003/users', {
timeout: 30,
// the expected response type
responseType: ResponseType.JSON
});
类型参数
T
参数
名称 | 类型 |
---|---|
url | string |
options? | RequestOptions |
patch
patch<
T
>(url
:string
,options?
:RequestOptions
):Promise
<Response
<T
>>
发出 PATCH 请求。
示例
import { getClient, Body } from '@tauri-apps/api/http';
const client = await getClient();
const response = await client.patch('http://localhost:3003/users/1', {
body: Body.json({ email: '[email protected]' })
});
类型参数
T
参数
名称 | 类型 |
---|---|
url | string |
options? | RequestOptions |
post
post<
T
>(url
:string
,body?
:Body
,options?
:RequestOptions
):Promise
<Response
<T
>>
发出 POST 请求。
示例
import { getClient, Body, ResponseType } from '@tauri-apps/api/http';
const client = await getClient();
const response = await client.post('http://localhost:3003/users', {
body: Body.json({
name: 'tauri',
password: 'awesome'
}),
// in this case the server returns a simple string
responseType: ResponseType.Text,
});
类型参数
T
参数
名称 | 类型 |
---|---|
url | string |
body? | Body |
options? | RequestOptions |
put
put<
T
>(url
:string
,body?
:Body
,options?
:RequestOptions
):Promise
<Response
<T
>>
发出 PUT 请求。
示例
import { getClient, Body } from '@tauri-apps/api/http';
const client = await getClient();
const response = await client.put('http://localhost:3003/users/1', {
body: Body.form({
file: {
file: '/home/tauri/avatar.png',
mime: 'image/png',
fileName: 'avatar.png'
}
})
});
类型参数
T
参数
名称 | 类型 |
---|---|
url | string |
body? | Body |
options? | RequestOptions |
request
request<
T
>(options
:HttpOptions
):Promise
<Response
<T
>>
发出 HTTP 请求。
示例
import { getClient } from '@tauri-apps/api/http';
const client = await getClient();
const response = await client.request({
method: 'GET',
url: 'http://localhost:3003/users',
});
类型参数
T
参数
名称 | 类型 |
---|---|
options | HttpOptions |
Response<T>
响应对象。
自: 1.0.0
类型参数
T
属性
data
data:
T
响应数据。
定义于: http.ts:299
headers
headers:
Record
<string
,string
>
响应头。
定义于: http.ts:295
ok
ok:
boolean
一个布尔值,指示响应是否成功(状态在 200-299 范围内)或不成功。
定义于: http.ts:293
rawHeaders
rawHeaders:
Record
<string
,string
[]>
原始响应头。
定义于: http.ts:297
status
status:
number
响应状态码。
定义于: http.ts:291
url
url:
string
请求 URL。
定义于: http.ts:289
接口
ClientOptions
自: 1.0.0
属性
connectTimeout
Optional
connectTimeout:number
|Duration
定义于: http.ts:65
maxRedirections
Optional
maxRedirections:number
定义客户端应该遵循的最大重定向次数。如果设置为 0,则不会遵循任何重定向。
定义于: http.ts:64
Duration
自: 1.0.0
属性
nanos
nanos:
number
定义于: http.ts:53
secs
secs:
number
定义于: http.ts:52
FilePart<T>
自: 1.0.0
类型参数
T
属性
file
file:
string
|T
定义于: http.ts:81
fileName
Optional
fileName:string
定义于: http.ts:83
mime
可选
mime:string
定义于: http.ts:82
HttpOptions
发送到后端的选项对象。
自: 1.0.0
属性
body
可选
body:Body
定义于: http.ts:263
headers
可选
headers:Record
<string
,any
>
定义于: http.ts:261
method
method:
HttpVerb
定义于: http.ts:259
query
可选
query:Record
<string
,any
>
定义于: http.ts:262
responseType
可选
responseType:ResponseType
定义于: http.ts:265
timeout
可选
timeout:number
|Duration
定义于: http.ts:264
url
url:
string
定义于: http.ts:260
类型别名
FetchOptions
FetchOptions:
Omit
<HttpOptions
,"url"
>
fetch
API 的选项。
定义于: http.ts:271
FormInput
定义于: http.ts:88
HttpVerb
HttpVerb:
"GET"
|"POST"
|"PUT"
|"DELETE"
|"PATCH"
|"HEAD"
|"OPTIONS"
|"CONNECT"
|"TRACE"
请求 HTTP 动词。
定义于: http.ts:242
Part
Part:
string
|Uint8Array
|FilePart
<Uint8Array
>
定义于: http.ts:86
RequestOptions
RequestOptions:
Omit
<HttpOptions
,"method"
|"url"
>
请求选项。
定义于: http.ts:269
函数
fetch
fetch<
T
>(url
:string
,options?
:FetchOptions
):Promise
<Response
<T
>>
使用默认客户端执行 HTTP 请求。
示例
import { fetch } from '@tauri-apps/api/http';
const response = await fetch('http://localhost:3003/users/2', {
method: 'GET',
timeout: 30,
});
类型参数
T
参数
名称 | 类型 |
---|---|
url | string |
options? | FetchOptions |
getClient
getClient(
options?
:ClientOptions
):Promise
<Client
>
使用指定选项创建新客户端。
示例
import { getClient } from '@tauri-apps/api/http';
const client = await getClient();
自: 1.0.0
参数
名称 | 类型 | 描述 |
---|---|---|
options? | ClientOptions | 客户端配置。 |
解析为客户端实例的 Promise。