حول هذه الأداة
أمر curl هو وصف مضغوط ومُقتبَس بطريقة الصدفة لطلب HTTP: عنوان URL، وطريقة اختيارية (-X)، وترويسات (-H)، وجسم (-d أو --data-raw أو --json أو حقول نموذج متعدد الأجزاء -F). يقسّم هذا المحوّل الأمر إلى رموز تمامًا كما تفعل الصدفة — مع التعامل مع علامات الاقتباس المفردة والمزدوجة وتهريب الشرطة المائلة العكسية واستمرار السطور وسلاسل ANSI-C بصيغة $'...' — ثم يحلّل الرايات إلى طلب موحَّد ويُصدر شيفرة عميل معتادة لستة أهداف.
استخدمه لتحويل مقتطف curl المُلصَق في توثيق واجهة برمجة التطبيقات أو المنسوخ من علامة تبويب الشبكة في متصفحك إلى شيفرة عاملة في ثوانٍ. وهو يستنتج POST عند وجود جسم، ويفك بيانات اعتماد -u إلى ترويسة Authorization: Basic، وينقل بيانات -d إلى سلسلة الاستعلام مع -G، ويبني FormData وأجسامًا متعددة الأجزاء لـ -F، ويطبع قيمًا حرفية أصلية من كائن أو dict أو مصفوفة عندما يكون الجسم JSON — كي تحصل على طلب يمكنك إسقاطه مباشرةً في استدعاء fetch، أو نص requests، أو معالج Go net/http، أو كتلة curl في PHP.
يُجرى كل شيء في متصفحك — لا يُرفع أبدًا أمر curl الخاص بك، بما في ذلك أي رموز أو ملفات تعريف ارتباط أو بيانات اعتماد Basic-auth، ولا يُرسَل إلى خادم.
الأسئلة الشائعة
أي رايات curl يدعمها المحوّل؟
يتعامل مع -X/--request و-H/--header و-d/--data/--data-raw/--data-binary/--data-urlencode و--json و-F/--form و-u/--user و-b/--cookie و-A/--user-agent و-e/--referer و-I/--head و-G. أما الرايات الخاصة بالنقل فقط مثل -L و--compressed و-k و-s و-o فيُشار إليها بدلًا من إعادة إنتاجها، وتُوسَم أي راية غير معروفة بتحذير بدلًا من تعطيل المخرجات.
كيف يحدّد طريقة HTTP عند عدم وجود راية -X؟
يتبع قواعد curl الخاصة: تكون الطريقة افتراضيًا GET، لكنها تصبح POST تلقائيًا عند وجود جسم طلب أو حقل نموذج. ويفوز -X الصريح دائمًا، ويفرض -I طريقة HEAD، ويُبقي -G الطريقة GET مع نقل أي بيانات إلى سلسلة الاستعلام.
هل تحتفظ الشيفرة المُولَّدة بأجسام طلب JSON ككائنات حقيقية؟
نعم. عندما يكون Content-Type هو application/json ويُحلَّل الجسم بنظافة، يُصدر المحوّل قيمًا حرفية أصلية — كائن JavaScript لـ fetch وAxios، وdict في Python، ومصفوفة PHP تُمرَّر إلى json_encode — بدلًا من نص مبهم، بحيث يسهل قراءة جسم الطلب وتحريره.