curl to Rust कन्वर्टर

अपने ब्राउज़र में ही एक curl कमांड को तुरंत Rust reqwest कोड में बदलें। कमांड आपकी डिवाइस पर ही रहता है।

आपका curl कमांड आपके ब्राउज़र में ही स्थानीय रूप से Rust में बदला जाता है और कभी अपलोड नहीं होता, लेकिन किसी भी टूल में असली प्रोडक्शन टोकन या क्रेडेंशियल पेस्ट करने से बचें।

निर्माण और रखरखाव: Udit Agarwal

curl को JavaScript fetch में भी बदलें

cURL to Rust के बारे में

cURL to Rust एक ऐसा curl कमांड लेता है जिसे आपने टर्मिनल, ब्राउज़र DevTools, या API डॉक्यूमेंटेशन से कॉपी किया है, और उसे reqwest क्रेट पर आधारित एक async Rust प्रोग्राम के रूप में फिर से लिखता है। यह -X, -H, -d, --data-raw, --json, -u, और -G जैसे फ्लैग्स पढ़ता है, सही reqwest::Method चुनता है, और मान्य JSON बॉडी के लिए .json(...) या फॉर्म/रॉ पेलोड के लिए .body(...) चुनता है ताकि रिक्वेस्ट वही हो जो curl वास्तव में भेजता। एक -u/--user फ्लैग को मैन्युअल हेडर के बजाय एक मुहावरेदार .basic_auth(...) कॉल में बदला जाता है। यह तब उपयोगी होता है जब आप किसी क्विक API टेस्ट को Rust सर्विस, CLI टूल, या इंटीग्रेशन टेस्ट में पोर्ट कर रहे हों, बिना reqwest का बॉयलरप्लेट हाथ से लिखे। पूरा कन्वर्जन आपके ब्राउज़र में ही होता है, इसलिए curl कमांड और उसमें मौजूद कोई भी टोकन स्थानीय रूप से आपकी डिवाइस पर प्रोसेस होते हैं और कभी अपलोड नहीं होते।

विशेषताएँ

  • #[tokio::main] और reqwest::Client से जुड़ा एक async fn main() जनरेट करता है
  • curl के method को मेल खाते reqwest::Method से मैप करता है, कस्टम verbs सहित
  • हर -H/--header फ्लैग से एक HeaderMap बनाता है
  • मान्य JSON बॉडी के लिए .json(&serde_json::json!(...)) और फॉर्म/रॉ पेलोड के लिए .body(...) उपयोग करता है
  • -u/--user को एक मुहावरेदार .basic_auth(username, Some(password)) कॉल में बदलता है
  • JSON बॉडी को प्रेटी-प्रिंट करता है ताकि literal पढ़ना और एडिट करना आसान हो
  • उन फ्लैग्स के बारे में चेतावनी देता है जिनका reqwest में कोई समकक्ष नहीं है, जैसे -k और आउटपुट-टू-फ़ाइल विकल्प
  • एक क्लिक में परिणाम कॉपी करें या request.rs के रूप में डाउनलोड करें

cURL to Rust का उपयोग कैसे करें

  1. अपना curl कमांड cURL कमांड बॉक्स में पेस्ट करें।
  2. आउटपुट पैनल में जनरेट हुए Rust reqwest प्रोग्राम को पढ़ें।
  3. यदि कोई फ्लैग एडजस्ट या स्किप हुई हो तो चेतावनी बैनर देखें।
  4. कॉपी पर क्लिक करें, या कोड को request.rs के रूप में डाउनलोड करें।

उदाहरण

इनपुट

curl -X POST https://api.example.com/users \
  -H "Content-Type: application/json" \
  -d '{"name":"Ada"}'

आउटपुट

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 उसे आपके लिए सीरियलाइज़ कर दे।

सामान्य त्रुटियाँ और समस्या निवारण

  • आउटपुट में .json(...) की जगह .body(...) दिख रहा है। — बॉडी को --json के साथ भेजें या -H "Content-Type: application/json" जोड़ें ताकि कन्वर्टर इसे JSON पहचान कर .json(...) पर स्विच कर सके।
  • कंपाइल करते समय serde_json या tokio क्रेट न मिलने की एरर आती है। — अपने Cargo.toml में reqwest (json फीचर के साथ), serde_json, और tokio (full फीचर के साथ) को डिपेंडेंसी के रूप में जोड़ें; जनरेट किया गया कोड इन्हीं क्रेट्स पर निर्भर करता है।
  • JSON बॉडी ऑब्जेक्ट लिटरल की बजाय एक quoted string के रूप में आती है। — ऐसा तब होता है जब बॉडी मान्य JSON नहीं होती। JSON ठीक करें, या उसे string के रूप में रखें और .body(...) के साथ भेजें।
  • curl कमांड में -u इस्तेमाल करने के बावजूद .basic_auth(...) कॉल गायब है। — पुष्टि करें कि -u की वैल्यू ठीक user:pass फॉर्मेट में है। कन्वर्टर आंतरिक रूप से जनरेट किए गए Basic auth हेडर को डिकोड करके यूज़रनेम और पासवर्ड वापस निकालता है।

अक्सर पूछे जाने वाले प्रश्न

मैं curl कमांड को Rust में कैसे बदलूं?
curl कमांड को इनपुट बॉक्स में पेस्ट करें और cURL to Rust दाईं ओर एक async reqwest प्रोग्राम रेंडर करता है, जिसे आप कॉपी कर सकते हैं या request.rs के रूप में डाउनलोड कर सकते हैं।
क्या cURL to Rust, reqwest या किसी अन्य HTTP क्लाइंट के लिए कोड जनरेट करता है?
यह लोकप्रिय reqwest क्रेट को tokio async runtime के साथ टारगेट करता है और #[tokio::main] का उपयोग करते हुए एक async fn main() जनरेट करता है। कोड चलाने से पहले दोनों क्रेट्स को अपने Cargo.toml में जोड़ें।
कन्वर्टर कब .json(...) और कब .body(...) उपयोग करता है?
जब बॉडी मान्य JSON हो (--json या JSON Content-Type के साथ भेजी गई हो) तो यह .json(&serde_json::json!(...)) उपयोग करता है, और फॉर्म-एन्कोडेड या रॉ स्ट्रिंग बॉडी के लिए .body(...) उपयोग करता है।
Rust आउटपुट में curl -u बेसिक ऑथ वैल्यू कैसे हैंडल होती है?
एक -u या --user वैल्यू को request builder पर .basic_auth(username, Some(password)) के रूप में दर्शाया जाता है, न कि हाथ से बनाए गए Authorization हेडर के रूप में।
क्या Rust में बदलते समय मेरा curl कमांड कहीं अपलोड होता है?
नहीं। curl to Rust कन्वर्जन पूरी तरह आपके ब्राउज़र में ही होता है, इसलिए कमांड और उसमें मौजूद कोई भी क्रेडेंशियल आपकी डिवाइस पर ही रहता है।
जनरेट हुआ reqwest कोड किन क्रेट्स पर निर्भर करता है?
आउटपुट को डिपेंडेंसी के रूप में reqwest (json फीचर के साथ), serde_json, और tokio (full फीचर के साथ) चाहिए; कंपाइल करने से पहले इन्हें cargo add से जोड़ें।

संबंधित टूल

  • cURL से Fetch — curl कमांड को JavaScript fetch() कॉल में कन्वर्ट करें।
  • curl to Python Converter — एक curl कमांड को Python requests कोड में बदलें।
  • curl to Go Converter — एक curl कमांड को Go net/http कोड में बदलें।
  • curl to Node.js Converter — एक curl कमांड को Node.js axios कोड में बदलें।
  • curl to PHP Converter — एक curl कमांड को PHP cURL कोड में बदलें।
  • API क्लाइंट — HTTP अनुरोध भेजें, हेडर और पैरामीटर बनाएँ और रिस्पॉन्स का निरीक्षण करें; अपने पिछले 25 सहेजें।

API टूल के और टूल

  • HAR से cURL — HAR के अनुरोधों को चलने योग्य cURL आदेशों में बदलें।
  • Postman से cURL — Postman कलेक्शन को चलने लायक़ cURL कमांड में बदलें।
  • cURL से C# — curl कमांड को HttpClient वाले C# कोड में बदलें।
  • cURL से Java — curl कमांड को HttpClient वाले Java कोड में बदलें।
  • cURL से Ruby — curl कमांड को net/http वाले Ruby कोड में बदलें।
  • cURL से PowerShell — curl कमांड को Invoke-RestMethod वाली PowerShell में बदलें।
  • cURL से Swift — curl कमांड को URLSession वाले Swift कोड में बदलिए।
  • cURL से Dart — curl कमांड को package:http वाले Dart कोड में बदलिए।
  • cURL से Fetch — curl कमांड को JavaScript fetch() कॉल में कन्वर्ट करें।
  • URL पार्सर — URL को उसके भागों में तोड़ें और क्वेरी पैरामीटर सूचीबद्ध करें।
  • API क्लाइंट — HTTP अनुरोध भेजें, हेडर और पैरामीटर बनाएँ और रिस्पॉन्स का निरीक्षण करें; अपने पिछले 25 सहेजें।
  • URL बिल्डर और UTM जनरेटर — UTM पैरामीटर के साथ एन्कोडेड उत्पादन URL बनाएं और सत्यापित करें।

API टूल के सभी टूल देखें (24) · सभी टूल