curl-কে OCaml-এ রূপান্তর করুন
Cohttp ব্যবহার করে curl কমান্ডগুলোকে OCaml কোডে রূপান্তর করুন। curl2code সম্পূর্ণভাবে WebAssembly-এর মাধ্যমে আপনার ব্রাউজারে চলে — আপনার ডেটা গোপন থাকে। Rust-এর জন্য আমাদের curl to Rust converter ব্যবহার করে দেখুন। Elixir-এর জন্য curl to Elixir দেখুন। নিচে ব্যবহারের জন্য প্রস্তুত OCaml উদাহরণ দেওয়া হলো।
আপনার ব্রাউজার থেকে কীভাবে curl কপি করবেন
- 1
DevTools ওপেন করুন
আপনার ব্রাউজার ডেভেলপার টুলস ওপেন করতে F12 অথবা Ctrl+Shift+I চাপুন।
- 2
Network ট্যাবে যান
Network ট্যাবে ক্লিক করুন এবং সেই কাজটি করুন যা HTTP রিকোয়েস্টটি ট্রিগার করে।
- 3
cURL হিসেবে কপি করুন
রিকোয়েস্টের ওপর রাইট-ক্লিক করুন → Copy → Copy 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 হলো Lwt/Async সাপোর্টসহ স্ট্যান্ডার্ড OCaml HTTP লাইব্রেরি। ocurl হলো libcurl-এর র্যাপার, যা OCaml থেকে curl-এর সমস্ত ফিচার ব্যবহারের সুযোগ দেয়। piaf তুলনামূলক নতুন এবং HTTP/2-নেটিভ। ইডিওম্যাটিক OCaml-এর জন্য Cohttp ব্যবহার করুন, আর curl-নির্দিষ্ট ফিচারের প্রয়োজন হলে ocurl ব্যবহার করুন। অনুরূপ ফাংশনাল ল্যাঙ্গুয়েজের জন্য curl to Elixir বা curl to Clojure দেখুন।
OCaml-এ অথেন্টিকেশন কীভাবে হ্যান্ডেল করবেন?
রিকোয়েস্টে একটি Authorization হেডার যোগ করুন: Header.add headers "Authorization" ("Bearer " ^ token)। Basic auth-এর জন্য, base64 প্যাকেজ ব্যবহার করে ক্রেডেনশিয়ালগুলো base64-এনকোড করুন। Cohttp হেডারগুলো ইমিউটেবল — এগুলো Header.of_list দিয়ে তৈরি করুন অথবা Header.add কলগুলো চেইন করুন।
OCaml-এ কীভাবে মাল্টিপার্ট ফর্ম ডেটা পাঠাবেন?
বাউন্ডারি স্ট্রিং ব্যবহার করে ম্যানুয়ালি মাল্টিপার্ট বডি তৈরি করুন, অথবা multipart_form-এর মতো লাইব্রেরি ব্যবহার করুন। বাউন্ডারিসহ Content-Type হেডার সেট করুন। Cohttp-এর বডি একটি সাধারণ স্ট্রিং বা স্ট্রিম — RFC 2046 অনুযায়ী মাল্টিপার্ট পে-লোড ফরম্যাট করুন। curl2code -F ফ্ল্যাগ কনভার্সন হ্যান্ডেল করে।
OCaml HTTP রিকোয়েস্টে এরর কীভাবে হ্যান্ডেল করবেন?
Lwt-সহ Cohttp প্রমিস রিটার্ন করে — এরর হ্যান্ডলিংয়ের জন্য Lwt.catch অথবা try%lwt ... with সিনট্যাক্স ব্যবহার করুন। Response.status response দিয়ে রেসপন্স স্ট্যাটাস কোড চেক করুন। OCaml-এর টাইপ সিস্টেম নিশ্চিত করে যে আপনি ফেইলিয়ার কেসগুলো হ্যান্ডেল করছেন। পুঙ্খানুপুঙ্খ হ্যান্ডলিংয়ের জন্য স্ট্যাটাস কোডের ওপর প্যাটার্ন ম্যাচিং ব্যবহার করুন।
OCaml-এ কীভাবে কনকারেন্ট HTTP রিকোয়েস্ট করবেন?
Lwt ব্যাকএন্ডের ক্ষেত্রে: প্যারালাল এক্সিকিউশনের জন্য Lwt.all [request1; request2] অথবা URL-এর ওপর ম্যাপিংয়ের জন্য 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 প্রমিসকে একটি টাইমআউট কম্বিনেটর দিয়ে র্যাপ করুন। রিট্রাইয়ের জন্য, ডিক্রিজিং অ্যাটেম্পটসহ একটি রিকার্সিভ ফাংশন ইমপ্লিমেন্ট করুন।
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 token অথরাইজেশন কীভাবে যোগ করবেন?
curl2code-এ curl -H "Authorization: Bearer YOUR_TOKEN" URL পাস করুন এবং এটি অথরাইজেশন হেডার সহ Cohttp কোড জেনারেট করে: Header.add headers 'Authorization' 'Bearer YOUR_TOKEN'। curl2code -H "Authorization: Bearer ..." এবং --oauth2-bearer উভয় ফ্ল্যাগ থেকে Bearer token শনাক্ত করে। 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-তে ম্যাপ করে।