Конвертировать curl в Rust

curl2code преобразует команды curl в код Rust с использованием крейта reqwest. Конвертация выполняется в вашем браузере через WebAssembly для полной конфиденциальности. Для Go ознакомьтесь с нашим конвертером curl в Go. Для C см. curl в C. Ниже приведены практические примеры на Rust с использованием async/await.

Как скопировать curl из браузера

  1. 1

    Откройте DevTools

    Нажмите F12 или Ctrl+Shift+I, чтобы открыть инструменты разработчика в браузере.

  2. 2

    Перейдите на вкладку Network

    Нажмите на вкладку Network и выполните действие, которое инициирует HTTP-запрос.

  3. 3

    Скопируйте как cURL

    Нажмите правой кнопкой мыши на запрос → CopyCopy as cURL. Затем вставьте его выше.

Часто задаваемые вопросы

Что такое Rust reqwest?

reqwest — самый популярный HTTP-клиент для Rust, построенный на базе hyper. Он предоставляет как блокирующий, так и асинхронный API, автоматическую сериализацию JSON через serde, TLS, обработку куки и поддержку прокси. Добавьте с помощью cargo add reqwest --features json. Это библиотека по умолчанию, которую curl2code использует для конвертации в Rust.

reqwest против hyper против ureq — что использовать?

reqwest — основной выбор для большинства проектов: высокоуровневый, многофункциональный и асинхронный. hyper — более низкоуровневый и дает максимальный контроль (reqwest построен на нем). ureq — минималистичный, только блокирующий клиент без зависимости от асинхронной среды выполнения. Для аналогичного подхода со стандартной библиотекой см. curl в Go или curl в C.

Как обрабатывать аутентификацию в Rust?

Для Bearer: client.get(url).bearer_auth(token). Для Basic: client.get(url).basic_auth(user, Some(pass)). Или установите заголовки вручную с помощью .header("Authorization", value). curl2code конвертирует флаги -u и -H 'Authorization: ...' в соответствующие методы reqwest.

Как отправить multipart form data в Rust?

Используйте reqwest::multipart::Form: создайте с помощью Form::new(), добавьте текстовые поля через .text("key", "value") и файлы через .file("field", path).await?. Передайте в client.post(url).multipart(form). curl2code обрабатывает флаги -F для reqwest multipart.

Как обрабатывать ошибки HTTP в Rust?

reqwest возвращает Result, оборачивающий Response при успехе или reqwest::Error при ошибке — используйте оператор ? для проброса. Проверяйте response.status().is_success() или вызывайте response.error_for_status()?, который преобразует коды, отличные от 2xx, в ошибки. Система типов Rust гарантирует, что все пути ошибок будут явно обработаны во время компиляции.

Какая асинхронная среда выполнения нужна для reqwest?

reqwest по умолчанию требует среду выполнения tokio. Пометьте вашу функцию main аннотацией #[tokio::main]. Для блокирующего использования без асинхронной среды включите функцию blocking и используйте reqwest::blocking::Client. curl2code по умолчанию генерирует асинхронный код с tokio. Для другой асинхронной экосистемы см. curl в Go (горутины).

Как установить таймауты в Rust reqwest?

Установите на клиенте: Client::builder().timeout(Duration::from_secs(30)).connect_timeout(Duration::from_secs(10)).build()?. Для конкретного запроса: client.get(url).timeout(Duration::from_secs(5)). Они сопоставляются с флагами curl --max-time и --connect-timeout.

Как использовать прокси с reqwest?

Установите прокси в билдере клиента: Client::builder().proxy(Proxy::https("http://proxy:8080")?).build()?. Поддерживаются прокси HTTP, HTTPS и SOCKS5. reqwest также по умолчанию учитывает переменные окружения HTTP_PROXY и HTTPS_PROXY. curl2code конвертирует флаги -x в конфигурацию прокси.

Как отправить POST-запрос с телом JSON на Rust?

Преобразуйте команду curl POST, такую как curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL, в Rust с помощью curl2code. Сгенерированный код использует client.post(url).json(&data).send().await?. curl2code автоматически обнаруживает флаги -d/--data с содержимым JSON и устанавливает соответствующий заголовок Content-Type в коде reqwest.

Как добавить авторизацию через Bearer token на Rust?

Передайте curl -H "Authorization: Bearer YOUR_TOKEN" URL в curl2code, и инструмент сгенерирует код reqwest с заголовком авторизации: .bearer_auth("YOUR_TOKEN"). curl2code распознает Bearer tokens как в флагах -H "Authorization: Bearer ...", так и в --oauth2-bearer. Для Basic auth используйте -u user:pass.

Как установить заголовок Content-Type на Rust?

curl2code преобразует curl -H "Content-Type: application/json" URL в код reqwest с правильным заголовком: .header("Content-Type", "application/json"). Для данных -d curl по умолчанию использует application/x-www-form-urlencoded; для загрузки форм -F используется multipart/form-data. curl2code сопоставляет каждый вариант с подходящим API reqwest.

Полезные ссылки

Руководства по curl

Конвертировать curl в другие языки