TK TaskKit
أدوات المطورين

cURL ↔ fetch

حوّل أوامر cURL إلى استدعاءات fetch() والعكس، في متصفحك.

الإدخال
الإخراج
الصق أمراً على اليسار، وشاهد الصيغة المحوّلة على اليمين.

إدخالاتك تبقى على جهازك. كل أدوات المطورين في TaskKit تعمل في متصفحك. الرموز والـ payloads وما تلصقه لا يُرسل لخوادم TaskKit ولا لأي طرف ثالث.

ما الذي تفعله هذه الأداة

تحوّل أوامر cURL إلى استدعاءات fetch() لـ JavaScript والعكس. تنتقل الطريقة والترويسات وجسم الطلب والمصادقة الأساسية وملفات تعريف الارتباط في كلا الاتجاهين. مفيدة حين نسخت curl من الطرفية أو من «Copy as cURL» في أدوات مطوّري Chrome وأردتها كوداً، أو حين تريد مشاركة قطعة fetch مع شخص لن ترى متصفحه أبداً.

متى تستخدمها

  • ترجمة curl من وثائق مزوِّد إلى عميلك بـ TypeScript.
  • إعادة إنتاج طلب فاشل من تقرير خلل («إليك curl») في سكربت Node.
  • مشاركة طلب مع زميل كقطعة fetch يلصقها مباشرةً في وحدة تحكّم متصفّح.
  • إعادة كتابة fetch تعمل كأمر curl لرفع خلل لفريق الواجهة الخلفية.

كيف تعمل

اتجاه curl يحلّل الإدخال كأمر صَدفة — تُحترم السلاسل المُقتبسة، وتُجمَّع متابعات الأسطر (\)، وتُتعرّف الأعلام الشائعة (-X، -H، -d، -u، -A، -e، -b). يُعاد كتابة -u user:pass كترويسة Authorization: Basic لتعمل في أي عميل HTTP.

اتجاه fetch يقرأ استدعاء fetch() ويسحب الرابط والطريقة والترويسات والجسم. هو مستخرِج قائم على التعابير المنتظمة، لا محلّل JS، فالسلاسل الحرفية تعمل لكن قوالب السلاسل والقيم المحسوبة لا.

ملاحظات

fetch لديّ بقالب سلسلة JSON لم يُترجَم. صحيح — لا يقرأ المحلّل إلا السلاسل الحرفية. استبدل \{ "id": \${id} }`` بالسلسلة المحلولة، أو افعل ذلك التحويل أوّلاً.

هل تُعامَل --data-binary بشكل مختلف عن -d؟ لا. cURL يفرّق بينهما (إحداهما تحفظ الأسطر الجديدة والأخرى لا)، لكن لأغراض الترجمة إلى fetch نعاملهما كجسم طلب. إن كنت تعتمد على دلالات الثنائي فأنت بالفعل خارج ما تستطيع fetch التعبير عنه.

ماذا عن HTTP/2 push والرفع متعدّد الأجزاء والبثّ؟ خارج النطاق. متعدّد الأجزاء هو الطلب الأكثر شيوعاً — ابنِ FormData في الكود بدلاً من المرور بهذه الأداة.

أدوات ذات صلة