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

Cohttp کا استعمال کرتے ہوئے curl کمانڈز کو OCaml کوڈ میں تبدیل کریں۔ curl2code مکمل طور پر WebAssembly کے ذریعے آپ کے براؤزر میں چلتا ہے — آپ کا ڈیٹا نجی رہتا ہے۔ Rust کے لیے، ہمارا curl to Rust کنورٹر آزمائیں۔ Elixir کے لیے، curl to Elixir دیکھیں۔ نیچے استعمال کے لیے تیار OCaml مثالیں دی گئی ہیں۔

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

  1. 1

    DevTools کھولیں

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

  2. 2

    Network ٹیب پر جائیں

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

  3. 3

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

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

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

OCaml Cohttp کیا ہے؟

Cohttp OCaml کے لیے معیاری HTTP کلائنٹ اور سرور لائبریری ہے۔ یہ کنکرنٹ I/O کے لیے Lwt (ہلکے پھلکے تھریڈز) اور Async دونوں بیک اینڈز کو سپورٹ کرتی ہے۔ اسے opam install cohttp-lwt-unix کے ذریعے انسٹال کریں۔ یہ HTTP ریکویسٹس کے لیے ایک ٹائپ سیف، فنکشنل API فراہم کرتی ہے۔ curl2code تمام OCaml کنورژنز کے لیے Cohttp کا استعمال کرتا ہے۔

Cohttp بمقابلہ ocurl بمقابلہ piaf — کون سا استعمال کریں؟

Cohttp معیاری OCaml HTTP لائبریری ہے جس میں Lwt/Async سپورٹ موجود ہے۔ ocurl دراصل libcurl کا ریپر ہے، جو OCaml سے curl کے تمام فیچرز تک رسائی دیتا ہے۔ piaf جدید اور HTTP/2-native ہے۔ روایتی OCaml کوڈ کے لیے Cohttp استعمال کریں، اور جب curl کے مخصوص فیچرز درکار ہوں تو ocurl استعمال کریں۔ اسی طرح کی فنکشنل زبانوں کے لیے، curl to Elixir یا curl to Clojure دیکھیں۔

OCaml میں آتھنٹیکیشن (authentication) کو کیسے ہینڈل کریں؟

ریکویسٹ میں Authorization ہیڈر شامل کریں: Header.add headers "Authorization" ("Bearer " ^ token)۔ Basic auth کے لیے، base64 پیکیج کا استعمال کرتے ہوئے کریڈنشلز کو base64-encode کریں۔ Cohttp ہیڈرز ناقابل تغیر (immutable) ہوتے ہیں — انہیں Header.of_list کے ساتھ بنائیں یا Header.add کالز کو چین کریں۔

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

ملٹی پارٹ باڈی کو باؤنڈری سٹرنگز کے ساتھ دستی طور پر تیار کریں، یا multipart_form جیسی لائبریری استعمال کریں۔ باؤنڈری کے ساتھ Content-Type ہیڈر سیٹ کریں۔ Cohttp کی باڈی ایک سادہ سٹرنگ یا اسٹریم ہوتی ہے — RFC 2046 کے مطابق ملٹی پارٹ پے لوڈ کو فارمیٹ کریں۔ curl2code -F فلیگ کی کنورژن کو ہینڈل کرتا ہے۔

OCaml HTTP ریکویسٹس میں ایرر ہینڈلنگ کیسے کریں؟

Lwt کے ساتھ Cohttp وعدے (promises) واپس کرتا ہے — ایرر ہینڈلنگ کے لیے Lwt.catch یا try%lwt ... with سنٹیکس استعمال کریں۔ Response.status response کے ذریعے رسپانس اسٹیٹس کوڈ چیک کریں۔ OCaml کا ٹائپ سسٹم اس بات کو یقینی بناتا ہے کہ آپ ناکامی کے کیسز کو ہینڈل کریں۔ مکمل ہینڈلنگ کے لیے اسٹیٹس کوڈز پر پیٹرن میچنگ استعمال کریں۔

OCaml میں کنکرنٹ HTTP ریکویسٹس کیسے کریں؟

Lwt بیک اینڈ کے ساتھ: متوازی عمل درآمد کے لیے Lwt.all [request1; request2] یا URLs پر میپنگ کے لیے Lwt_list.map_p استعمال کریں۔ Async کے ساتھ: Deferred.all استعمال کریں۔ Lwt یا Async کے ذریعے OCaml کی کوآپریٹو کنکرنسی تھریڈ سیفٹی کے مسائل کے بغیر محفوظ اور موثر کنکرنٹ I/O فراہم کرتی ہے۔

OCaml میں ٹائم آؤٹ کیسے سیٹ کریں؟

Lwt کے ساتھ، ٹائمر کے خلاف ریکویسٹ کی ریس لگانے کے لیے Lwt.pick [request; Lwt_unix.sleep timeout >>= fun () -> Lwt.fail Timeout] استعمال کریں۔ Cohttp میں بلٹ ان ٹائم آؤٹ آپشنز نہیں ہیں — Lwt پرومس کو ٹائم آؤٹ کمبی نیٹر کے ساتھ ریپ کریں۔ ری ٹرائز (retries) کے لیے، کم ہوتی ہوئی کوششوں کے ساتھ ایک ریکرسیو فنکشن نافذ کریں۔

OCaml میں پراکسی کا استعمال کیسے کریں؟

Cohttp میں بلٹ ان پراکسی سپورٹ نہیں ہے۔ پراکسی کی ضروریات کے لیے ocurl (libcurl بائنڈنگز) استعمال کریں: CURLOPT_PROXY آپشن سیٹ کریں۔ متبادل طور پر، HTTP_PROXY انوائرمنٹ ویری ایبل سیٹ کریں اور کنکشن کو دستی طور پر پراکسی ہوسٹ اور پورٹ کے ذریعے روٹ کرنے کے لیے کنفیگر کریں۔

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

curl2code کا استعمال کرتے ہوئے curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL جیسی curl POST کمانڈ کو OCaml میں تبدیل کریں۔ تیار کردہ کوڈ Client.post ~body:(Cohttp_lwt.Body.of_string json) uri استعمال کرتا ہے۔ curl2code خودکار طور پر JSON مواد کے ساتھ -d/--data فلیگز کا پتہ لگاتا ہے اور Cohttp کوڈ میں مناسب Content-Type ہیڈر سیٹ کرتا ہے۔

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

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

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

curl2code curl -H "Content-Type: application/json" URL کو مناسب ہیڈر کے ساتھ Cohttp کوڈ میں تبدیل کرتا ہے: Header.add headers 'Content-Type' 'application/json'۔ -d ڈیٹا کے لیے، curl ڈیفالٹ طور پر application/x-www-form-urlencoded استعمال کرتا ہے؛ -F فارم اپ لوڈز کے لیے، یہ multipart/form-data استعمال کرتا ہے۔ curl2code ہر ایک کو درست Cohttp API کے ساتھ میپ کرتا ہے۔

مفید لنکس

curl گائیڈز

curl کو دیگر زبانوں میں تبدیل کریں