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

curl2code конвертира curl команди в Rust код, използвайки reqwest crate. Конвертирането се извършва във вашия браузър чрез 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 данни в 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 гарантира, че всички пътища на грешки се обработват изрично по време на компилация.

Коя асинхронна среда (runtime) е необходима за reqwest?

reqwest изисква средата tokio по подразбиране. Анотирайте вашата main функция с #[tokio::main]. За блокираща употреба без асинхронна среда, активирайте функцията blocking и използвайте reqwest::blocking::Client. curl2code генерира асинхронен код с tokio по подразбиране. За друга асинхронна екосистема вижте curl към Go (goroutines).

Как да задам таймаути в Rust reqwest?

Задайте на клиента: Client::builder().timeout(Duration::from_secs(30)).connect_timeout(Duration::from_secs(10)).build()?. За всяка заявка: client.get(url).timeout(Duration::from_secs(5)). Те се мапват към флаговете --max-time и --connect-timeout на curl.

Как да използвам прокси с reqwest?

Задайте прокси в builder-а на клиента: 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 токени както от -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 в други езици