HTTP Client
This content is not available in your language yet.
Make HTTP requests with the http plugin.
Supported Platforms
This plugin requires a Rust version of at least 1.77.2
Platform | Level | Notes |
---|---|---|
windows | ||
linux | ||
macos | ||
android | ||
ios |
Setup
Install the http plugin to get started.
Use your project’s package manager to add the dependency:
npm run tauri add http
yarn run tauri add http
pnpm tauri add http
deno task tauri add http
bun tauri add http
cargo tauri add http
-
Run the following command in the
src-tauri
folder to add the plugin to the project’s dependencies inCargo.toml
:cargo add tauri-plugin-http -
Modify
lib.rs
to initialize the plugin:src-tauri/src/lib.rs #[cfg_attr(mobile, tauri::mobile_entry_point)]pub fn run() {tauri::Builder::default().plugin(tauri_plugin_http::init()).run(tauri::generate_context!()).expect("error while running tauri application");} -
If you’d like to make http requests in JavaScript then install the npm package as well:
npm install @tauri-apps/plugin-httpyarn add @tauri-apps/plugin-httppnpm add @tauri-apps/plugin-httpdeno add npm:@tauri-apps/plugin-httpbun add @tauri-apps/plugin-http
Usage
The HTTP plugin is available in both Rust as a reqwest re-export and JavaScript.
JavaScript
-
Configure the allowed URLs
src-tauri/capabilities/default.json {"permissions": [{"identifier": "http:default","allow": [{ "url": "https://*.tauri.app" }],"deny": [{ "url": "https://private.tauri.app" }]}]}For more information, please see the documentation for Permissions Overview
-
Send a request
The
fetch
method tries to be as close and compliant to thefetch
Web API as possible.import { fetch } from '@tauri-apps/plugin-http';// Send a GET requestconst response = await fetch('http://test.tauri.app/data.json', {method: 'GET',});console.log(response.status); // e.g. 200console.log(response.statusText); // e.g. "OK"
Rust
In Rust you can utilize the reqwest
crate re-exported by the plugin. For more details refer to reqwest docs.
use tauri_plugin_http::reqwest;
let res = reqwest::get("http://my.api.host/data.json").await;println!("{:?}", res.status()); // e.g. 200println!("{:?}", res.text().await); // e.g Ok("{ Content }")
Default Permission
This permission set configures what kind of fetch operations are available from the http plugin.
This enables all fetch operations but does not allow explicitly any origins to be fetched. This needs to be manually configured before usage.
Granted Permissions
All fetch operations are enabled.
allow-fetch
allow-fetch-cancel
allow-fetch-read-body
allow-fetch-send
Permission Table
Identifier | Description |
---|---|
|
Enables the fetch command without any pre-configured scope. |
|
Denies the fetch command without any pre-configured scope. |
|
Enables the fetch_cancel command without any pre-configured scope. |
|
Denies the fetch_cancel command without any pre-configured scope. |
|
Enables the fetch_read_body command without any pre-configured scope. |
|
Denies the fetch_read_body command without any pre-configured scope. |
|
Enables the fetch_send command without any pre-configured scope. |
|
Denies the fetch_send command without any pre-configured scope. |
© 2025 Tauri Contributors. CC-BY / MIT