كيفية استخدام محلّل أوامر cURL
- الصق أمر cURL (يقبل الأوامر متعددة الأسطر).
- اختر اللغة الهدف.
- أزل الترويسات الخاصة بالمتصفح إن أردت، ثم انسخ الكود المحوَّل أو بنية JSON.
مزايا محلّل أوامر cURL
- مقسّم رموز (tokenizer) يراعي قواعد غلاف الأوامر (shell): علامات الاقتباس المفردة والمزدوجة وANSI-C، والأحرف المهرَّبة، واستمرار الأسطر بالشرطة المائلة العكسية وbacktick و^
- يتعرّف على -X و-H و-d/--data-raw/--data-binary/--data-urlencode و--json و-F و-u و--oauth2-bearer و--url و-A و-e و-b و-L و--compressed و-k و-I و-G و--max-time والعلامات المدمجة وصيغة --flag=value
- يستنتج الطريقة (POST عند وجود متن، وHEAD مع -I)، ويفكّ ترميز بيانات اعتماد Basic، ويستخرج رموز Bearer ومفاتيح API
- يحوّل إلى ثلاثة عشر هدفاً منها fetch وaxios وPython وJava وC# وGo وPHP وRuby
- خيار لإزالة الترويسات الخاصة بالمتصفح من تصديرات أدوات المطوّرين
- عرض JSON منظّم للطلب وقائمة بالعلامات المتجاهَلة
مثال على محلّل أوامر cURL
تحويل تصدير من أدوات المطوّرين إلى fetch
الإدخال:
curl 'https://api.example.com/v1/orders' -H 'authorization: Bearer eyJ…' -H 'content-type: application/json' --data-raw '{"sku":"KB-100"}' --compressedالنتيجة:
const response = await fetch("https://api.example.com/v1/orders", {
method: "POST",
headers: {
"Authorization": "Bearer eyJ…",
"content-type": "application/json"
},
body: JSON.stringify({
"sku": "KB-100"
})
});الأسئلة الشائعة حول محلّل أوامر cURL
ما علامات cURL المفهومة؟
-X/--request و-H/--header و-d/--data/--data-raw/--data-binary/--data-urlencode و--json و-F/--form و-u/--user و--oauth2-bearer و--url و-A و-e و-b و-L و--compressed و-k و-I و-G و-m/--max-time، والعلامات القصيرة المدمجة (-sSL)، وصيغة --flag=value، والاقتباس $'…'، واستمرار الأسطر في bash وPowerShell وcmd. وتُدرج العلامات غير المعروفة بوصفها متجاهَلة.
لماذا تكون الطريقة POST مع أن الأمر لا يحتوي على -X؟
هذه قاعدة curl نفسه: أي خيار -d أو -F يعني ضمناً POST ما لم يُحدَّد -G (إرسال البيانات كاستعلام) أو -X صراحةً. ويعني -I ضمناً HEAD.
ما الذي يزيله خيار «إزالة الترويسات الخاصة بالمتصفح»؟
الترويسات التي تضيفها المتصفحات تلقائياً والتي تعطّل الطلبات البرمجية أو تضخّمها: sec-ch-* وsec-fetch-* وuser-agent وcookie وreferer وorigin وaccept-language وaccept-encoding وpriority وcache-control وpragma. ويُحتفظ دائماً بـ Authorization وContent-Type.
هل يُفكّ ترميز ترويسة Authorization من نوع Basic؟
نعم. يُفكّ ترميز "Authorization: Basic …" من base64 إلى اسم مستخدم وكلمة مرور حتى يتمكن الكود المحوَّل من استخدام خيار المصادقة الأصلي في العميل؛ كما يُتعرَّف على رموز Bearer وترويسات X-API-Key.