curl کو Rust میں تبدیل کریں

curl2code reqwest کریٹ کا استعمال کرتے ہوئے curl کمانڈز کو Rust کوڈ میں تبدیل کرتا ہے۔ مکمل رازداری کے لیے یہ تبدیلی WebAssembly کے ذریعے آپ کے براؤزر میں ہوتی ہے۔ Go کے لیے، ہمارا curl to Go کنورٹر دیکھیں۔ C کے لیے، curl to C دیکھیں۔ نیچے async/await کے ساتھ عملی Rust مثالیں دی گئی ہیں۔

اپنے براؤزر سے curl کاپی کرنے کا طریقہ

  1. 1

    DevTools کھولیں

    اپنے براؤزر کے ڈویلپر ٹولز کھولنے کے لیے F12 یا Ctrl+Shift+I دبائیں۔

  2. 2

    Network ٹیب پر جائیں

    Network ٹیب پر کلک کریں اور وہ عمل کریں جو HTTP درخواست کو متحرک کرتا ہے۔

  3. 3

    cURL کے طور پر کاپی کریں

    درخواست پر رائٹ کلک کریں ← CopyCopy as cURL۔ پھر اسے اوپر پیسٹ کریں۔

اکثر پوچھے جانے والے سوالات

Rust reqwest کیا ہے؟

reqwest Rust کے لیے سب سے مقبول HTTP کلائنٹ ہے، جو hyper کی بنیاد پر بنایا گیا ہے۔ یہ بلاکنگ اور async دونوں APIs، serde کے ذریعے خودکار JSON سیریلائزیشن، TLS، کوکی ہینڈلنگ، اور پراکسی سپورٹ فراہم کرتا ہے۔ اسے cargo add reqwest --features json کے ساتھ شامل کریں۔ یہ curl2code کی طرف سے Rust کی تبدیلیوں کے لیے استعمال ہونے والی ڈیفالٹ لائبریری ہے۔

reqwest بمقابلہ hyper بمقابلہ ureq — مجھے کون سا استعمال کرنا چاہیے؟

reqwest زیادہ تر پروجیکٹس کے لیے بہترین ہے — ہائی لیول، فیچر سے بھرپور، اور async۔ hyper لو-لیول ہے اور زیادہ سے زیادہ کنٹرول دیتا ہے (reqwest اسی پر بنا ہے)۔ ureq ایک کم سے کم، صرف بلاکنگ کلائنٹ ہے جس میں کوئی async رن ٹائم ڈیپینڈینسی نہیں ہے۔ اسی طرح کے اسٹینڈرڈ لائبریری نقطہ نظر کے لیے، curl to Go یا curl to C دیکھیں۔

Rust میں توثیق (authentication) کو کیسے سنبھالا جائے؟

Bearer کے لیے: client.get(url).bearer_auth(token)۔ Basic کے لیے: client.get(url).basic_auth(user, Some(pass))۔ یا .header("Authorization", value) کے ساتھ دستی طور پر ہیڈرز سیٹ کریں۔ curl2code، -u اور -H 'Authorization: ...' فلیگز کو مناسب reqwest میتھڈز میں تبدیل کرتا ہے۔

Rust میں ملٹی پارٹ فارم ڈیٹا کیسے بھیجا جائے؟

reqwest::multipart::Form استعمال کریں: Form::new() کے ساتھ بنائیں، .text("key", "value") کے ساتھ ٹیکسٹ فیلڈز، اور .file("field", path).await? کے ساتھ فائلیں شامل کریں۔ client.post(url).multipart(form) میں پاس کریں۔ curl2code، reqwest ملٹی پارٹ کے لیے -F فلیگز کو سنبھالتا ہے۔

Rust میں HTTP غلطیوں کو کیسے سنبھالا جائے؟

reqwest کامیابی پر Response کو لپیٹتے ہوئے Result واپس کرتا ہے یا ناکامی پر reqwest::Error — پروپیگیشن کے لیے ? آپریٹر استعمال کریں۔ response.status().is_success() چیک کریں یا response.error_for_status()? کال کریں جو غیر 2xx کوڈز کو ایررز میں تبدیل کرتا ہے۔ Rust کا ٹائپ سسٹم اس بات کو یقینی بناتا ہے کہ تمام غلطی کے راستے کمپائل ٹائم پر واضح طور پر ہینڈل ہوں۔

reqwest کو کس async رن ٹائم کی ضرورت ہے؟

reqwest کو ڈیفالٹ طور پر tokio رن ٹائم کی ضرورت ہوتی ہے۔ اپنے main کو #[tokio::main] کے ساتھ اینوٹیٹ کریں۔ async رن ٹائم کے بغیر بلاکنگ استعمال کے لیے، blocking فیچر کو فعال کریں اور reqwest::blocking::Client استعمال کریں۔ curl2code ڈیفالٹ طور پر tokio کے ساتھ async کوڈ جنریٹ کرتا ہے۔ ایک اور async ایکو سسٹم کے لیے، curl to 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))۔ یہ 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 فلیگز کو پراکسی کنفیگریشن میں تبدیل کرتا ہے۔

Rust میں JSON باڈی کے ساتھ POST درخواست کیسے بھیجیں؟

curl2code کا استعمال کرتے ہوئے curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL جیسی curl POST کمانڈ کو Rust میں تبدیل کریں۔ تیار کردہ کوڈ client.post(url).json(&data).send().await? استعمال کرتا ہے۔ curl2code خودکار طور پر JSON مواد کے ساتھ -d/--data فلیگز کا پتہ لگاتا ہے اور reqwest کوڈ میں مناسب Content-Type ہیڈر سیٹ کرتا ہے۔

Rust میں Bearer ٹوکن کی اجازت کیسے شامل کریں؟

curl2code کو curl -H "Authorization: Bearer YOUR_TOKEN" URL فراہم کریں اور یہ auth ہیڈر کے ساتھ reqwest کوڈ تیار کرتا ہے: .bearer_auth("YOUR_TOKEN")۔ curl2code دونوں -H "Authorization: Bearer ..." اور --oauth2-bearer فلیگز سے Bearer ٹوکنز کا پتہ لگاتا ہے۔ Basic auth کے لیے، -u user:pass استعمال کریں۔

Rust میں Content-Type ہیڈر کیسے سیٹ کریں؟

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 کو دیگر زبانوں میں تبدیل کریں