cURL পার্সার

cURL কমান্ডকে সংগঠিত উপাদানে পার্স করুন। URL, মেথড, হেডার, বডি, অথ বের করুন এবং JavaScript fetch() ও axios সমতুল্য কোড তৈরি করুন।

উপাদান পার্সিং fetch() জেনারেশন axios জেনারেশন

cURL পার্সার ব্যবহারের পদ্ধতি

1

cURL কমান্ড পেস্ট করুন

ব্রাউজার DevTools থেকে একটি cURL কমান্ড কপি করুন (কোনো রিকোয়েস্টে রাইট-ক্লিক করে "Copy as cURL") এবং ইনপুট এরিয়ায় পেস্ট করুন।

2

উপাদান পার্স করুন

কমান্ডটি স্বয়ংক্রিয়ভাবে URL, মেথড, হেডার, বডি, অথ এবং কুকিজে ভাঙা হয়।

3

কোড নিন

আপনার JavaScript প্রজেক্টে ব্যবহারের জন্য জেনারেট করা fetch() বা axios কোড কপি করুন।

cURL কী?

cURL (Client URL) হলো বিভিন্ন প্রোটোকলে ডেটা স্থানান্তরের একটি কমান্ড-লাইন টুল ও লাইব্রেরি। API পরীক্ষা, HTTP রিকোয়েস্ট ডিবাগিং এবং ডেটা স্থানান্তর অটোমেশনে এটি ব্যাপকভাবে ব্যবহৃত হয়। ব্রাউজার ডেভেলপার টুলস নেটওয়ার্ক রিকোয়েস্টকে cURL কমান্ড হিসেবে এক্সপোর্ট করতে পারে, যার ফলে HTTP রিকোয়েস্ট শেয়ার ও পুনরুৎপাদন সহজ হয়।

কমান্ড-লাইন টুল

cURL হলো HTTP, HTTPS, FTP সহ বিভিন্ন প্রোটোকলে ডেটা স্থানান্তরের একটি কমান্ড-লাইন টুল।

ব্রাউজার DevTools এক্সপোর্ট

বেশিরভাগ ব্রাউজার DevTools-এ নেটওয়ার্ক রিকোয়েস্টে রাইট-ক্লিক করে "Copy as cURL" করলে সঠিক কমান্ড পাওয়া যায়।

কোড রূপান্তর

cURL কমান্ডকে JavaScript fetch() বা axios কোডে রূপান্তর করুন যাতে ওয়েব অ্যাপ্লিকেশনে সহজে ইন্টিগ্রেট করা যায়।

সাধারণ জিজ্ঞাসা

cURL থেকে fetch() কোড তৈরি করতে পারে?

হ্যাঁ। টুলটি cURL কমান্ডকে JavaScript fetch() এবং axios কোড স্নিপেটে রূপান্তর করে। জেনারেট করা কোড মূল cURL কমান্ডের URL, মেথড, হেডার এবং বডি সংরক্ষণ করে।

POST ডেটা এবং ফাইল আপলোড সামলায়?

হ্যাঁ। এটি -d/--data, --data-raw এবং --data-binary ফ্ল্যাগ পার্স করে, JSON পেলোডসহ। JSON বডি ডেটা জেনারেট করা কোডে সঠিক ইনডেন্টেশনসহ স্বয়ংক্রিয়ভাবে ফরম্যাট হয়।

কোন কোন cURL ফ্ল্যাগ সমর্থিত?

সাধারণ ফ্ল্যাগগুলোর মধ্যে রয়েছে -X (মেথড), -H (হেডার), -d (ডেটা), -b (কুকিজ), -u (অথ), -k (insecure), -L (রিডাইরেক্ট ফলো), --compressed ইত্যাদি। জটিল বা অস্বাভাবিক ফ্ল্যাগ সম্পূর্ণ পার্স নাও হতে পারে।

cURL কমান্ডকে PHP কোডে কীভাবে রূপান্তর করব?

টুলটি ফ্ল্যাগগুলোকে PHP-এর curl API-তে ম্যাপ করে: URL যায় CURLOPT_URL-এ, প্রতিটি -H যায় CURLOPT_HTTPHEADER-এ, -d যায় CURLOPT_POSTFIELDS-এ এবং -u যায় CURLOPT_USERPWD-এ। কমান্ড পেস্ট করুন, জেনারেট করা স্নিপেট কপি করুন - বয়লারপ্লেট (RETURNTRANSFER, এরর হ্যান্ডলিং) আপনার জন্য তৈরি হয়ে যায়।

-H ফ্ল্যাগ কী করে এবং পুনরাবৃত্ত হেডারের কী হয়?

-H 'Content-Type: application/json' একটি হেডার যোগ করে; প্রতিটি অতিরিক্ত হেডারের জন্য -H পুনরাবৃত্ত করুন, সবগুলোই পাঠানো হয়। -H মান ছাড়া নাম দিয়ে হেডার সরাতেও পারে (-H 'User-Agent:') বা শেষে সেমিকোলন দিয়ে খালি মান পাঠাতে পারে। একাধিক -H ফ্ল্যাগ ক্রম বজায় রাখে, যা কিছু API-এর জন্য গুরুত্বপূর্ণ।

cURL-এ অথেনটিকেশন কীভাবে পাঠানো হয়?

HTTP Basic হলো -u user:password (curl এটি base64-এনকোড করে Authorization হেডারে রাখে)। বিয়ারার টোকেন হেডার হিসেবে যায়: -H 'Authorization: Bearer <token>'। API কী সার্ভিস অনুযায়ী হেডার বা কোয়েরি প্যারামিটার হিসেবে থাকে। সতর্কতা: কমান্ড লাইনের সিক্রেট শেল হিস্ট্রিতে থেকে যায় - netrc ফাইল বা এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করা ভালো।

-d, --data-binary এবং -F-এর মধ্যে পার্থক্য কী?

-d ডেটা application/x-www-form-urlencoded হিসেবে পাঠায় এবং নিউলাইন সরিয়ে দেয়; --data-binary পেলোড হুবহু পাঠায়, যা JSON API-র প্রয়োজন; -F একটি multipart/form-data রিকোয়েস্ট তৈরি করে, ফাইল আপলোডের একমাত্র বিকল্প। GET-স্টাইল প্যারামিটারে -G-এর সাথে -d ব্যবহার হয়, যা ডেটাকে URL কোয়েরি স্ট্রিংয়ে সরিয়ে নেয়।

cURL কমান্ড কাজ করলেও রূপান্তরিত কোড কেন ব্যর্থ হয়?

সাধারণত কোটিং: শেল curl দেখার আগেই কোট সরিয়ে নেয়, কিন্তু লক্ষ্য ভাষা সেগুলো নতুন করে ব্যাখ্যা করে - শেলে নিরাপদ সিঙ্গেল কোট JavaScript-এ ভিন্ন ব্যবস্থাপনা চায়। অন্যান্য ফাঁদ: মাল্টিলাইন কমান্ডের লাইন-শেষ ব্যাকস্ল্যাশ, কিছু ভাষায় URL-এর পার্সেন্ট চিহ্ন %-ফরম্যাটিং ভেঙে দেওয়া, আর -b/-c দ্বারা উল্লিখিত কুকি ফাইল যা নতুন এনভায়রনমেন্টে নেই।

{-- * External Resources Component(#18 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}