Конвертувати 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, обробку cookies та підтримку проксі. Додайте за допомогою cargo add reqwest --features json. Це бібліотека за замовчуванням, яку curl2code використовує для конвертацій у Rust.

reqwest проти hyper проти ureq — що варто використовувати?

reqwest — основний вибір для більшості проєктів: високорівневий, багатофункціональний та асинхронний. hyper — низькорівневий і дає максимальний контроль (reqwest побудований на ньому). ureq — мінімалістичний клієнт тільки з блокуючим API, без залежності від асинхронного середовища виконання. Для підходу зі стандартною бібліотекою дивіться 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 дані форми в Rust?

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

Як обробляти помилки 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-токена у Rust?

Передайте curl -H "Authorization: Bearer YOUR_TOKEN" URL у curl2code, і він згенерує код reqwest із заголовком авторизації: .bearer_auth("YOUR_TOKEN"). curl2code виявляє Bearer-токени як у прапорцях -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 зіставляє кожен варіант із правильним reqwest API.

Корисні посилання

Посібники з curl

Конвертувати curl в інші мови