محوّل cURL: من cURL إلى Fetch وPython وAxios والمزيد

الصق أمر curl، مثل أمر منسوخ من DevTools في متصفحك، واحصل على كود جاهز للتشغيل بـ 8 لغات. تُحوَّل الترويسات وأجسام JSON والنماذج ورفع الملفات والمصادقة وملفات تعريف الارتباط كلها.

يعمل في متصفحكبدون تسجيللا يُرفع شيء

تحويل إلى
JavaScript fetch

    

    طريقة استخدام محوّل cURL

    1. انسخ الطلب كـ cURL: في DevTools في Chrome أو Firefox، انقر بزر الفأرة الأيمن على طلب في تبويب 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 إلى كائن الترويسات، وتحويل -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 الخاص بي إلى خادم؟
    لا. يتم التحليل وتوليد الكود بالكامل في متصفحك. غالبًا ما تحتوي الأوامر المنسوخة من DevTools على ملفات تعريف ارتباط ورموز مميزة، لذا لا يُرفع أي شيء ولا يُخزَّن.
    كيف أنسخ طلبًا كـ cURL من Chrome؟
    افتح DevTools ‏(F12)، وانتقل إلى تبويب Network، وانقر بزر الفأرة الأيمن على الطلب واختر Copy → Copy as cURL (bash). صيغة cmd الخاصة بـ Windows تعمل هنا أيضًا.
    هل يتعامل مع رفع الملفات؟
    نعم. يصبح -F name=@file كائن FormData في JavaScript، وقاموس files= في Python، وmime/multipart في Go، وCURLFile في PHP. أما -d @file و-T file فيقرآن جسم الطلب من ملف.
    ماذا يحدث للخيارات التي لا يعرفها المحوّل؟
    تُدرج كتحذيرات أسفل المخرجات حتى لا يُحذف شيء بصمت. تُتجاهل الخيارات الخاصة بالمخرجات فقط مثل -s و-v و-o لأنها لا تغيّر الطلب.
    هل أستخدم requests أم httpx في Python؟
    requests هي الخيار الافتراضي الراسخ للسكربتات المتزامنة. أما httpx فلها واجهة برمجية شبه مطابقة، وتضيف دعم HTTP/2 والعمل غير المتزامن، ولا تتبع عمليات إعادة التوجيه ما لم تطلب ذلك، مما يجعلها أقرب إلى سلوك curl.

    أدوات ذات صلة