একটি curl কমান্ডকে fetch, Node, Python, PowerShell বা HTTPie কোডে বদলান
আপনার ব্রাউজারে চলে। আপনি যা লেখেন তা কোথাও পাঠানো হয় না।ডকুমেন্টেশন থেকে কপি করা একটি curl কমান্ড আপনার কোডে চালানোর আগে নতুন করে লিখতে হয়। এই টুল সেটিকে fetch, Node, Python, PowerShell বা HTTPie-তে বদলায়, 5টি টার্গেট, হেডার ও বডি অক্ষত রেখে। কমান্ডটি আপনার ব্রাউজারেই থাকে, তাই একটি bearer টোকেন কখনো পাঠানো হয় না।
এই পৃষ্ঠাটি ইংরেজি মূল লেখা থেকে যন্ত্রের সাহায্যে অনুবাদ করা হয়েছে। এই অনুবাদটি এখনও কোনো মানুষ পর্যালোচনা করেননি, তাই ইংরেজি সংস্করণটিকেই নির্ভরযোগ্য ধরুন। ইংরেজি মূল লেখাটি পড়ুন
curl কমান্ড বাক্সে একটি curl কমান্ড পেস্ট করুন, অথবা "অথবা একটি প্রচলিত কমান্ড দিয়ে শুরু করুন"-এর নিচে একটি বেছে নিন।
"রূপান্তর করুন"-এর নিচে একটি ভাষা বেছে নিন: fetch (ব্রাউজার), fetch (Node.js), Python requests, PowerShell বা HTTPie।
বাক্সের নিচের সারাংশে মেথড, URL, হেডারের সংখ্যা ও বডির ধরন দেখুন, এবং যেকোনো সতর্কবার্তা পড়ুন।
কপি করুন চাপুন, অথবা Ctrl+Enter, অথবা কোডটি ফাইল হিসেবে সেভ করতে ডাউনলোড বোতাম ব্যবহার করুন।
একটি curl কমান্ড পেস্ট করুন এবং একই রিকোয়েস্ট ব্রাউজার fetch, Node fetch, Python requests, PowerShell Invoke-RestMethod বা HTTPie হিসেবে লেখা পান। কমান্ডটি একটি শেল যেভাবে ভাগ করত সেভাবেই ভাগ হয়, তাই উদ্ধৃতিচিহ্নের ভেতরের মান, এস্কেপ করা অক্ষর এবং ব্যাকস্ল্যাশ, ক্যারেট বা ব্যাকটিক দিয়ে জোড়া লাইন সবই টিকে থাকে।
মানুষ আসলে যে ফ্ল্যাগগুলো পেস্ট করে সেগুলো সামলানো হয়: -X, -H, -d এবং প্রতিটি --data রূপ, --data-urlencode, --json, -u, -F ও --form, -G, --compressed, -k, -b, -A, -e, -L, -I, -T, -x এবং --max-time। একটি JSON বডি লম্বা স্ট্রিংয়ের বদলে আসল অবজেক্ট হিসেবে লেখা হয়, একটি ফর্ম FormData বা files= হয়ে যায়, আর -G ডেটাকে দুবার এনকোড না করে কোয়েরি স্ট্রিংয়ে সরায়।
যেখানে একটি টার্গেট curl যা করত তা করতে পারে না, সেখানে তৈরি কোড চুপচাপ ভুল কিছু না বানিয়ে সেটা জানিয়ে দেয়। একটি পেজ সার্টিফিকেট যাচাই বন্ধ করতে বা Cookie হেডার সেট করতে পারে না, তাই সেগুলো কমেন্ট হয়ে যায়। মাল্টিপার্ট আপলোডে স্পষ্ট Content-Type বাদ দেওয়া হয়, কারণ শুধু লাইব্রেরিই বাউন্ডারি জানে। যে PowerShell সুইচের জন্য সংস্করণ 6 লাগে সেগুলো চিহ্নিত।
কিছুই কখনো চালানো হয় না এবং কোনো রিকোয়েস্ট পাঠানো হয় না। পার্সার ও প্রতিটি জেনারেটর এই পেজেই চলে, যা গুরুত্বপূর্ণ কারণ একটি পেস্ট করা কমান্ডে সাধারণত একটি সক্রিয় bearer টোকেন, একটি সেশন কুকি বা একটি পাসওয়ার্ড থাকে। সেটি আপনার ব্রাউজারেই থাকে। তবুও, তৈরি কোড কোনো রিপোজিটরিতে যাওয়ার আগে গোপন তথ্যটি একটি এনভায়রনমেন্ট ভেরিয়েবল দিয়ে বদলে দিন।
curl শব্দ দিয়ে শুরু করে পুরো কমান্ডটি পেস্ট করুন এবং fetch বেছে নিন। হেডারগুলো একটি অবজেক্ট হয়, -d হয় বডি, একটি JSON বডি অবজেক্টটি খুলে JSON.stringify দিয়ে লেখা হয়, আর -u হয় btoa দিয়ে তৈরি একটি Authorization হেডার। এক ক্লিকে ফলাফল কপি করুন।
না। পার্সার ও প্রতিটি কোড জেনারেটর এই পেজে চলা JavaScript, এবং টুলটি কোনো ধরনের নেটওয়ার্ক রিকোয়েস্ট করে না। আপনি যা পেস্ট করেন তার কিছুই আপলোড, লগ বা সংরক্ষণ হয় না। তবুও, তৈরি কোড কমিট করার আগে গোপন তথ্যটি একটি এনভায়রনমেন্ট ভেরিয়েবল দিয়ে বদলে দিন।
কখনোই না। কমান্ডটি শুধু টেক্সট হিসেবে পড়া হয় এবং শেল যেভাবে ভাগ করত সেভাবে ভাগ হয়। কোনো রিকোয়েস্ট পাঠানো হয় না, কোনো ফাইল খোলা হয় না এবং কিছুই চালানো হয় না, তাই যে কমান্ড এখনো মন দিয়ে পড়েননি সেটিও নিরাপদে পেস্ট করতে পারেন।
Windows PowerShell-এ curl হলো Invoke-WebRequest-এর একটি অ্যালিয়াস, যা সম্পূর্ণ আলাদা আর্গুমেন্ট নেয়, তাই -H ও -d একেবারে অন্য কিছু হিসেবে পড়া হয়। আসল Invoke-RestMethod কল পেতে এখানে কমান্ডটি PowerShell-এ রূপান্তর করুন, অথবা curl.exe ইনস্টল করে পুরো নাম দিয়ে চালান।
--json ফ্ল্যাগ curl 7.82-এ যোগ হওয়া একটি সংক্ষিপ্ত রূপ, একসাথে তিনটি কাজের জন্য: এই টেক্সট বডি হিসেবে পাঠানো, Content-Type: application/json যোগ করা এবং Accept: application/json যোগ করা। এই কনভার্টার এটি খুলে দেয়, তাই তৈরি কোডে দুটি হেডারই স্পষ্টভাবে দেখা যায়।
হ্যাঁ। Network ট্যাবে একটি রিকোয়েস্টে রাইট-ক্লিক করে Copy as cURL বেছে নিন। এই কমান্ডগুলো --data-raw, --compressed এবং ছোট হাতের হেডারের একটি লম্বা তালিকা ব্যবহার করে, এবং প্রায়ই একটি খুব লম্বা লাইন বা ব্যাকস্ল্যাশ দিয়ে জোড়া কয়েকটি লাইন হয়। এগুলো সবই সামলানো হয়, যার মধ্যে আছে $'...' রূপ যা Chrome ব্যবহার করে যখন একটি মানে লাইন ব্রেক থাকে।
এখনও আটকে আছেন? curl কনভার্টার সম্পর্কে প্রশ্ন করুন আর যিনি জানেন তিনিই উত্তর দিতে পারেন। কোনো অ্যাকাউন্ট লাগবে না।