مبدل cURL: تبدیل cURL به Fetch، Python، Axios و بیشتر
یک دستور curl را جایگذاری کنید، مثلاً دستوری که از DevTools مرورگر کپی کردهاید، و کد آمادهٔ اجرا در 8 زبان بگیرید. هدرها، بدنههای JSON، فرمها، آپلود فایل، احراز هویت و کوکیها همه تبدیل میشوند.
اجرا در مرورگر شمابدون ثبتنامبدون آپلود
نحوهٔ استفاده از مبدل cURL
- یک درخواست را بهصورت cURL کپی کنید: در DevTools کروم یا فایرفاکس، در تب Network روی درخواست راستکلیک کنید ← Copy ← Copy as cURL.
- آن را در کادر ورودی جایگذاری کنید. دستورهای چندخطی با
\، ادامهٔ خط ویندوزی با^و رشتههای$'…'پشتیبانی میشوند. - زبان مقصد را انتخاب کنید: JavaScript fetch، Axios، Node.js، Python requests، Python httpx، Go، PHP یا HTTPie.
- هشدارهای زیر خروجی را بخوانید. آنها گزینههایی را فهرست میکنند که در زبان مقصد معادلی ندارند.
- کد را کپی کنید یا بهصورت فایل دانلود کنید.
چرا دستورهای curl را به کد تبدیل کنیم؟
curl زبان مشترک HTTP است. مستندات API مثالها را بهصورت curl نشان میدهند، DevTools مرورگر درخواستها را بهصورت curl خروجی میدهد و تیمهای پشتیبانی بازتولید مشکل را با curl میفرستند. وقتی آن درخواست را داخل یک برنامه میخواهید، باید آن را دستی بازنویسی کنید: هر -H را به یک شیء هدر منتقل کنید، -d را به بدنه تبدیل کنید، -u را به احراز هویت basic تبدیل کنید و به یاد داشته باشید که -G دادهها را به رشتهٔ کوئری منتقل میکند. این مبدل این ترجمه را برای شما انجام میدهد و کدی تولید میکند که مستقیماً در پروژه قابل جایگذاری است.
گزینههای پشتیبانیشدهٔ curl
| گزینه | تبدیل به |
|---|---|
-X، -I، -G | متد HTTP (در صورت وجود بدنه، POST در نظر گرفته میشود) |
-H، -A، -e، -b | هدرها، User-Agent، Referer و کوکیها |
-d، --data-raw، --data-binary، --data-urlencode، --json | بدنهٔ درخواست: اشیای JSON، فیلدهای فرم یا متن خام |
-F | دادهٔ فرم multipart، شامل آپلودهای @file |
-u، --oauth2-bearer | احراز هویت Basic یا توکن Bearer |
-k، -L، -m، -x، --compressed | بررسی TLS، ریدایرکتها، timeout، پراکسی و فشردهسازی |
بدنههای JSON به شیء واقعی تبدیل میشوند
وقتی درخواست JSON ارسال میکند (هدر Content-Type: application/json، گزینهٔ --json یا بدنهای که بهصورت JSON تجزیه میشود)، مبدل بهجای یک رشتهٔ escapeشده ساختار دادهٔ بومی تولید میکند: JSON.stringify({...}) برای fetch، یک شیء ساده برای Axios و json= با یک dict پایتون (True، False، None) برای requests و httpx. این کار ویرایش payload و جایگذاری متغیرها را آسان میکند.
تفاوتهایی که باید در نظر داشت
مرورگرها نمیتوانند بررسی گواهی را غیرفعال کنند یا یک درخواست را از طریق پراکسی بفرستند، بنابراین -k و -x در کد fetch مرورگر فقط بهصورت کامنت ظاهر میشوند. curl ریدایرکتها را دنبال نمیکند مگر اینکه -L را بدهید، در حالی که fetch، requests و Go بهطور پیشفرض آنها را دنبال میکنند. بدنهای که با -d و بدون Content-Type ارسال شود، توسط curl بهصورت فرم کدگذاری میشود؛ اگر شبیه JSON باشد، مبدل آن را بهصورت JSON میفرستد و در یک هشدار به شما اطلاع میدهد.
پرسشهای متداول
آیا دستور curl من به سرور ارسال میشود؟
چطور یک درخواست را در کروم بهصورت cURL کپی کنم؟
آیا آپلود فایل را پشتیبانی میکند؟
-F name=@file در JavaScript به FormData، در Python به یک dict files=، در Go به mime/multipart و در PHP به CURLFile تبدیل میشود. -d @file و -T file بدنهٔ درخواست را از فایل میخوانند.با گزینههایی که مبدل نمیشناسد چه میشود؟
-s، -v یا -o نادیده گرفته میشوند، چون درخواست را تغییر نمیدهند.