Мгновенно преобразуйте команду curl в код Rust с reqwest прямо в браузере. Команда остаётся на вашем устройстве.
Конвертер curl в Rust
Мгновенно преобразуйте команду curl в код Rust с reqwest прямо в браузере. Команда остаётся на вашем устройстве.
Ваша команда curl преобразуется в Rust локально в браузере и никогда не отправляется на сервер, но не вставляйте реальные production-токены или учётные данные в какие-либо инструменты.
cURL to Rust берёт команду curl, скопированную из терминала, DevTools браузера или документации API, и переписывает её в виде асинхронной программы на Rust на основе крейта reqwest. Инструмент читает такие флаги, как -X, -H, -d, --data-raw, --json, -u и -G, выбирает правильный reqwest::Method и использует .json(...) для валидного JSON-тела или .body(...) для формы либо необработанной полезной нагрузки, чтобы запрос точно соответствовал тому, что реально отправил бы curl. Флаг -u/--user преобразуется в идиоматичный вызов .basic_auth(...) вместо ручного заголовка. Это удобно, когда вы переносите быстрый тест API в сервис на Rust, консольную утилиту или интеграционный тест, не переписывая вручную шаблонный код reqwest. Всё преобразование выполняется в браузере, поэтому команда curl и любые токены в ней обрабатываются локально на вашем устройстве и никогда не отправляются на сервер.
Возможности
Генерирует async fn main(), связанную с #[tokio::main] и reqwest::Client
Сопоставляет метод curl с соответствующим reqwest::Method, включая произвольные глаголы
Собирает HeaderMap из каждого флага -H/--header
Использует .json(&serde_json::json!(...)) для валидного JSON-тела и .body(...) для формы или необработанных данных
Преобразует -u/--user в идиоматичный вызов .basic_auth(логин, Some(пароль))
Форматирует тело JSON, чтобы литерал было легко читать и редактировать
Предупреждает о флагах без аналога в reqwest, например -k и опциях вывода в файл
Копирование результата или скачивание в один клик как request.rs
Как использовать cURL в Rust
Вставьте свою команду curl в поле команды cURL.
Изучите сгенерированную программу на Rust с reqwest в панели вывода.
Проверьте баннер предупреждений — какие флаги были скорректированы или пропущены.
Нажмите «Копировать» или скачайте код как request.rs.
use reqwest::header::{HeaderMap, HeaderName, HeaderValue};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::Client::new();
let mut headers = HeaderMap::new();
headers.insert(HeaderName::from_bytes(b"Content-Type")?, HeaderValue::from_str("application/json")?);
let response = client
.request(reqwest::Method::POST, "https://api.example.com/users")
.headers(headers)
.json(&serde_json::json!({
"name": "Ada"
}))
.send()
.await?;
println!("{}", response.status());
let body = response.text().await?;
println!("{}", body);
Ok(())
}
Тело JSON передаётся через .json(...), поэтому reqwest сериализует его за вас.
Частые ошибки и устранение неполадок
В выводе используется .body(...), хотя ожидался .json(...). — Отправьте тело с флагом --json или добавьте -H "Content-Type: application/json", чтобы конвертер распознал его как JSON и переключился на .json(...).
Компиляция завершается ошибкой из-за отсутствующего крейта serde_json или tokio. — Добавьте reqwest (с фичей json), serde_json и tokio (с фичей full) в зависимости в Cargo.toml — сгенерированный код рассчитан на эти крейты.
Тело JSON выводится как строка в кавычках, а не как литерал объекта. — Это происходит, если тело не является валидным JSON. Исправьте JSON или оставьте его строкой и отправьте через .body(...).
Вызов .basic_auth(...) отсутствует, хотя в команде curl использовался -u. — Убедитесь, что значение -u имеет вид логин:пароль. Конвертер декодирует внутренне сгенерированный заголовок Basic auth, чтобы восстановить логин и пароль.
Часто задаваемые вопросы
Как преобразовать команду curl в Rust?
Вставьте команду curl в поле ввода, и cURL to Rust отобразит справа асинхронную программу на reqwest, которую можно скопировать или скачать как request.rs.
cURL to Rust генерирует код для reqwest или другого HTTP-клиента?
Инструмент ориентирован на популярный крейт reqwest с tokio в качестве асинхронной среды выполнения и создаёт async fn main() с #[tokio::main]. Добавьте оба крейта в Cargo.toml перед запуском кода.
Когда конвертер использует .json(...), а когда .body(...)?
Он использует .json(&serde_json::json!(...)), когда тело является валидным JSON (отправлено с --json или JSON-типом Content-Type), и .body(...) для тела в формате формы или необработанной строки.
Как значение базовой авторизации curl -u обрабатывается в выводе на Rust?
Значение -u или --user представляется как .basic_auth(логин, Some(пароль)) в построителе запроса, а не как заголовок Authorization, собранный вручную.
Отправляется ли моя команда curl куда-либо при конвертации в Rust?
Нет. Конвертация curl в Rust полностью выполняется в вашем браузере, поэтому команда и любые учётные данные в ней остаются на вашем устройстве.
От каких крейтов зависит сгенерированный код reqwest?
Для вывода требуются reqwest (с фичей json), serde_json и tokio (с фичей full) в качестве зависимостей — добавьте их через cargo add перед компиляцией.
Связанные инструменты
cURL в Fetch — Преобразуйте команду curl в вызов fetch() на JavaScript.
curl в Python — Преобразование команды curl в скрипт Python requests.
curl в Go — Преобразование команды curl в код Go net/http.
curl в Node.js — Преобразование команды curl в код Node.js axios.
curl в PHP — Преобразование команды curl в скрипт PHP cURL.
API-клиент — Отправляйте HTTP-запросы, задавайте заголовки и параметры и изучайте ответы; сохраняет последние 25.
Другие инструменты: Инструменты API
HAR в cURL — Превращает запросы из HAR в исполняемые команды cURL.
Postman в cURL — Превратите коллекцию Postman в команды cURL.
cURL в C# — Конвертирует команду curl в код C# с HttpClient.
cURL в Java — Конвертирует команду curl в код Java с HttpClient.
cURL в Ruby — Конвертирует команду curl в код Ruby на Net::HTTP.
cURL в PowerShell — Конвертирует команду curl в PowerShell Invoke-RestMethod.
cURL в Swift — Превращает команду curl в код Swift на URLSession.
cURL в Dart — Превращает команду curl в код Dart на package:http.
cURL в Fetch — Преобразуйте команду curl в вызов fetch() на JavaScript.
Разбор URL — Разбейте URL на части и просмотрите список параметров запроса.
API-клиент — Отправляйте HTTP-запросы, задавайте заголовки и параметры и изучайте ответы; сохраняет последние 25.
Генератор URL и UTM — Создавайте и проверяйте закодированные рабочие URL-адреса с параметрами UTM.