محوّل cURL: من cURL إلى Fetch وPython وAxios والمزيد
الصق أمر curl، مثل أمر منسوخ من DevTools في متصفحك، واحصل على كود جاهز للتشغيل بـ 8 لغات. تُحوَّل الترويسات وأجسام JSON والنماذج ورفع الملفات والمصادقة وملفات تعريف الارتباط كلها.
يعمل في متصفحكبدون تسجيللا يُرفع شيء
طريقة استخدام محوّل cURL
- انسخ الطلب كـ cURL: في DevTools في Chrome أو Firefox، انقر بزر الفأرة الأيمن على طلب في تبويب Network → Copy → Copy as cURL.
- الصقه في مربع الإدخال. الأوامر متعددة الأسطر باستخدام
\وتتمات Windows بـ^وسلاسل$'…'كلها مدعومة. - اختر الهدف: 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 وإعادة التوجيه والمهلة والوكيل والضغط |
أجسام JSON تصبح كائنات حقيقية
عندما يرسل الطلب JSON (ترويسة Content-Type: application/json أو --json أو جسم يُحلَّل كـ JSON)، يُنتج المحوّل بنى بيانات أصلية بدلًا من سلسلة مُهرَّبة: JSON.stringify({...}) لـ fetch، وكائنًا عاديًا لـ Axios، وjson= مع قاموس Python (True وFalse وNone) لـ requests وhttpx. وهذا يجعل الحمولة سهلة التعديل والتعبئة بالمتغيرات.
اختلافات يجب مراعاتها
لا تستطيع المتصفحات تعطيل فحص الشهادات أو توجيه طلب واحد عبر وكيل، لذا يظهر -k و-x كتعليقات فقط في كود fetch للمتصفح. لا يتبع curl عمليات إعادة التوجيه ما لم تمرّر -L، بينما يتبعها fetch وrequests وGo افتراضيًا. الجسم المرسل بـ -d بدون Content-Type يرمّزه curl كنموذج؛ وإذا بدا كـ JSON، يرسله المحوّل كـ JSON ويُعلمك بذلك في تحذير.
الأسئلة الشائعة
هل يُرسل أمر curl الخاص بي إلى خادم؟
كيف أنسخ طلبًا كـ cURL من Chrome؟
هل يتعامل مع رفع الملفات؟
-F name=@file كائن FormData في JavaScript، وقاموس files= في Python، وmime/multipart في Go، وCURLFile في PHP. أما -d @file و-T file فيقرآن جسم الطلب من ملف.ماذا يحدث للخيارات التي لا يعرفها المحوّل؟
-s و-v و-o لأنها لا تغيّر الطلب.