cURL কনভার্টার: cURL থেকে Fetch, Python, Axios ও আরও

একটি curl কমান্ড পেস্ট করুন, যেমন ব্রাউজারের DevTools থেকে কপি করা, আর ৮টি ভাষায় চালানোর উপযোগী কোড পান। হেডার, JSON বডি, ফর্ম, ফাইল আপলোড, অথেন্টিকেশন ও কুকি সবই রূপান্তরিত হয়।

ব্রাউজারেই চলেসাইন-আপ লাগে নাকিছুই আপলোড হয় না

রূপান্তর করুন
JavaScript fetch

    

    cURL কনভার্টার কীভাবে ব্যবহার করবেন

    1. রিকোয়েস্টটি cURL হিসেবে কপি করুন: Chrome বা Firefox DevTools-এর Network ট্যাবে রিকোয়েস্টে রাইট-ক্লিক → Copy → Copy as cURL।
    2. ইনপুট বক্সে পেস্ট করুন। \ দিয়ে একাধিক লাইনের কমান্ড, Windows-এর ^ লাইন-সংযোগ ও $'…' স্ট্রিং সমর্থিত।
    3. টার্গেট বেছে নিন: JavaScript fetch, Axios, Node.js, Python requests, Python httpx, Go, PHP বা HTTPie।
    4. আউটপুটের নিচের সতর্কবার্তাগুলো পড়ুন। সেখানে এমন অপশনের তালিকা থাকে যেগুলোর টার্গেট ভাষায় সমতুল্য কিছু নেই।
    5. কোড কপি করুন বা ফাইল হিসেবে ডাউনলোড করুন।

    কেন curl কমান্ডকে কোডে রূপান্তর করবেন?

    curl হলো HTTP-এর সাধারণ ভাষা। API ডকুমেন্টেশন উদাহরণ দেয় curl-এ, ব্রাউজারের DevTools রিকোয়েস্ট এক্সপোর্ট করে curl হিসেবে, আর সাপোর্ট টিম সমস্যা পুনরুৎপাদনের জন্য curl পাঠায়। সেই রিকোয়েস্ট অ্যাপ্লিকেশনে ব্যবহার করতে চাইলে আপনাকে হাতে নতুন করে লিখতে হয়: প্রতিটি -H একটি headers অবজেক্টে সরানো, -d-কে বডিতে পরিণত করা, -u-কে basic auth-এ রূপান্তর করা এবং মনে রাখা যে -G ডেটাকে কোয়েরি স্ট্রিংয়ে সরিয়ে দেয়। এই কনভার্টার সেই রূপান্তর আপনার হয়ে করে এবং এমন কোড তৈরি করে যা সরাসরি প্রজেক্টে পেস্ট করা যায়।

    সমর্থিত curl অপশন

    অপশনযাতে রূপান্তরিত হয়
    -X, -I, -GHTTP মেথড (বডি থাকলে POST ধরে নেওয়া হয়)
    -H, -A, -e, -bহেডার, User-Agent, Referer ও কুকি
    -d, --data-raw, --data-binary, --data-urlencode, --jsonরিকোয়েস্ট বডি: JSON অবজেক্ট, ফর্ম ফিল্ড বা raw টেক্সট
    -FMultipart ফর্ম ডেটা, @file আপলোডসহ
    -u, --oauth2-bearerBasic auth বা Bearer টোকেন
    -k, -L, -m, -x, --compressedTLS যাচাই, রিডাইরেক্ট, টাইমআউট, প্রক্সি ও কমপ্রেশন

    JSON বডি আসল অবজেক্টে পরিণত হয়

    যখন রিকোয়েস্ট JSON পাঠায় (Content-Type: application/json হেডার, --json, অথবা JSON হিসেবে পার্স হয় এমন বডি), তখন কনভার্টার এস্কেপ করা স্ট্রিংয়ের বদলে নেটিভ ডেটা স্ট্রাকচার তৈরি করে: fetch-এর জন্য JSON.stringify({...}), Axios-এর জন্য সাধারণ অবজেক্ট, আর requests ও httpx-এর জন্য Python dict সহ json= (True, False, None)। এতে payload সম্পাদনা করা ও ভেরিয়েবল বসানো সহজ হয়।

    যে পার্থক্যগুলো মনে রাখবেন

    ব্রাউজার সার্টিফিকেট যাচাই বন্ধ করতে বা একটি রিকোয়েস্টকে প্রক্সির মধ্য দিয়ে পাঠাতে পারে না, তাই ব্রাউজারের fetch কোডে -k ও -x শুধু কমেন্ট হিসেবে থাকে। -L না দিলে curl রিডাইরেক্ট অনুসরণ করে না, অথচ fetch, requests ও Go ডিফল্টভাবে অনুসরণ করে। Content-Type ছাড়া -d দিয়ে পাঠানো বডি curl ফর্ম-এনকোড করে; সেটি JSON মনে হলে কনভার্টার JSON হিসেবে পাঠায় এবং একটি সতর্কবার্তায় তা জানায়।

    সচরাচর জিজ্ঞাসিত প্রশ্ন

    আমার curl কমান্ড কি কোনো সার্ভারে পাঠানো হয়?
    না। পার্সিং ও কোড তৈরি পুরোপুরি আপনার ব্রাউজারে চলে। DevTools থেকে কপি করা কমান্ডে প্রায়ই কুকি ও টোকেন থাকে, তাই কিছুই আপলোড বা সংরক্ষণ করা হয় না।
    Chrome থেকে রিকোয়েস্ট cURL হিসেবে কীভাবে কপি করব?
    DevTools খুলুন (F12), Network ট্যাবে যান, রিকোয়েস্টে রাইট-ক্লিক করে Copy → Copy as cURL (bash) বেছে নিন। Windows-এর cmd ভ্যারিয়েন্টও এখানে কাজ করে।
    ফাইল আপলোড কি সামলায়?
    হ্যাঁ। -F name=@file JavaScript-এ FormData, Python-এ files= dict, Go-তে mime/multipart এবং PHP-তে CURLFile হয়ে যায়। -d @file ও -T file ফাইল থেকে রিকোয়েস্ট বডি পড়ে।
    কনভার্টার যে অপশন চেনে না, সেগুলোর কী হয়?
    সেগুলো আউটপুটের নিচে সতর্কবার্তা হিসেবে তালিকাভুক্ত হয়, যাতে কিছুই নীরবে বাদ না পড়ে। -s, -v বা -o-এর মতো শুধু আউটপুট-সংক্রান্ত ফ্ল্যাগ উপেক্ষা করা হয়, কারণ এগুলো রিকোয়েস্ট বদলায় না।
    Python-এ requests নাকি httpx ব্যবহার করব?
    সিঙ্ক্রোনাস স্ক্রিপ্টের জন্য requests দীর্ঘদিনের ডিফল্ট। httpx-এর API প্রায় একই, এতে HTTP/2 ও async সমর্থন আছে, এবং না বললে রিডাইরেক্ট অনুসরণ করে না, যা curl-এর আচরণের সাথে বেশি মেলে।

    সম্পর্কিত টুল