Skip to content

منشئ أوامر cURL وبنّاؤها

ابنِ أوامر curl في متصفحك — حدد الطريقة والترويسات والمصادقة والجسم، واحصل على أمر جاهز للنسخ فوراً. إعدادات مسبقة لـ Bearer وPOST JSON ورفع الملفات. مجاني وخاص وبلا تسجيل.

بدون تتبّع يعمل في المتصفّح مجاني
يُبنى أمرك كلياً في متصفحك. الرموز والروابط والحمولات لا تغادر جهازك.
إعدادات مسبقة
معاملات الاستعلام
الترويسات
المصادقة
جسم الطلب
الخيارات
الأمر المُنشأ
تمت المراجعة للتأكد من صحة توليد أوامر curl عبر الطرق والمصادقة وأنواع الجسم، ودقة إرفاق الترويسات لكل نوع جسم، والاقتباس والهروب الآمنَين في الصدفة — فريق هندسة Go Tools · Jun 3, 2026

ما هو أمر curl؟

curl هو أداة سطر أوامر لنقل البيانات عبر HTTP وعشرات البروتوكولات الأخرى. أمر curl هو اسم الثنائي ومجموعة من الأعلام ورابط — مثلاً curl -X POST https://api.example.com/users -H 'Content-Type: application/json' -d '{"name":"Ada"}'. لأن curl مثبّت على كل آلة تقريباً تعمل بـ Linux أو macOS أو Windows الحديثة، فهو الطريقة العالمية لاختبار واجهة API، أو إعادة إنتاج طلب من التوثيق، أو فحص سلامة خدمة من داخل سكريبت CI. الإيجاز الذي يجعله قوياً يجعله أيضاً صعب التذكر، وهو بالضبط لماذا يُفيد بنّاء مرئي.

لكل أمر curl التشريح نفسه. الطريقة (-X GET، -X POST، …) تضبط فعل HTTP، مع GET كافتراضي. الرابط هو النقطة النهائية، مع معاملات الاستعلام ملحقة بعد ?. الترويسات (-H 'Key: Value'، قابلة للتكرار) تحمل البيانات الوصفية كـ Accept وContent-Type. المصادقة هي مجرد ترويسة خاصة — -H 'Authorization: Bearer …' للرمز، و-u user:pass لمصادقة Basic، أو -H 'X-API-Key: …' مخصصة. الجسم (-d للبيانات الخامة أو بيانات النموذج، و-F للرفع متعدد الأجزاء والملفات) يحمل الحمولة. أخيراً، أعلام الخيارات كـ -L (اتباع إعادة التوجيه) و-i (تضمين ترويسات الاستجابة) و-v (تفصيلي) تُشكّل السلوك. تضع هذه الأداة كل جزء من تلك الأجزاء كحقل نموذج وتعيد بناء الأمر فورياً.

الجأ إلى منشئ أوامر curl حين تتعثر في الاقتباس، أو تنسى ترويسة Content-Type في POST JSON، أو تجمّع رفعاً متعدد الأجزاء يدوياً. يُصيب البنّاء الاقتباس الآمن بعلامة اقتباس مفردة في الصدفة، ويُرمّز سلسلة الاستعلام، ويُرفق الترويسات الصحيحة لكل نوع جسم — ثم تنسخ أمراً يمكنك الوثوق به. لمرجع مستفيض يشرح الأعلام بأمثلة 40+ قابلة للتشغيل، اقرأ ورقة غش curl المصاحبة؛ لترميز قيم سلسلة الاستعلام الصعبة يمكنك استخدام مُرمِّز URL لدينا.

كل شيء يحدث في متصفحك. رموزك وبيانات الاعتماد وروابطك وأجسام الطلبات تُجمَّع بـ JavaScript على جانب العميل ولا تُرسل إلى أي مكان — لذا يمكنك بناء أوامر ضد نقاط نهاية الإنتاج الفعلية بمفاتيح API حقيقية ولا شيء يغادر جهازك.

# Plain GET — curl defaults to GET
curl https://api.example.com/users

# GET with a Bearer token (auth is just a header)
curl https://api.example.com/me \
  -H 'Authorization: Bearer YOUR_TOKEN'

# POST a JSON body — note the Content-Type header
curl -X POST https://api.example.com/users \
  -H 'Content-Type: application/json' \
  -d '{"name":"Ada","role":"admin"}'

# Multipart file upload — '@' reads the file from disk
curl -X POST https://api.example.com/upload \
  -F 'file=@report.pdf' \
  -F 'title=Q3 report'

الميزات الرئيسية

بنّاء طلبات مرئي

رتّب الطلب بأكمله كحقول نموذج — الطريقة والرابط ومعاملات الاستعلام والترويسات والمصادقة والجسم والخيارات — بدلاً من حفظ ترتيب الأعلام والاقتباس. لا مزيد من التخمين هل يأتي الرابط قبل -d أم بعده.

أمر فوري مع نسخ وتصدير

يُعاد بناء أمر curl مع كل ضغطة مفتاح أسفل الصفحة. انسخه إلى حافظتك بنقرة واحدة، أو صدّر .sh لتنزيل سكريبت صدفة قابل للتشغيل يمكنك إدراجه مباشرةً في مستودع أو وظيفة CI.

دعم المصادقة الكامل

رمز Bearer، ومصادقة Basic (-u user:pass)، وترويسات مفتاح API المخصصة، كل منها يُصدَر بالشكل الدقيق الذي تتوقعه الخوادم. اختر المخطط، الصق بيانات الاعتماد، وتُولَّد ترويسة Authorization الصحيحة أو الترويسة المخصصة تلقائياً.

كل أنواع الجسم

JSON خام (مع ترويسة Content-Type المطابقة تُضاف تلقائياً)، وحقول نموذج application/x-www-form-urlencoded، ورفع multipart/form-data حيث يمكن تحويل أي حقل إلى ملف بالبادئة @.

ستة إعدادات مسبقة بنقرة واحدة

GET مع Bearer، وPOST JSON، ورفع نموذج، ومصادقة Basic، وتنزيل -o، وتصحيح تفصيلي تملأ النموذج بأكمله بنقرة واحدة. ابدأ من طلب يعمل لمهام API الأكثر شيوعاً وعدّل منه.

مخرج متعدد الأسطر وسطر واحد

بدّل بين أمر مضغوط في سطر واحد للصق السريع ونسخة متعددة الأسطر مع شرطة مائلة عكسية سهلة القراءة في سكريبت أو مراجعة في طلب سحب. الأمر نفسه، شكلان.

خصوصية 100% قائمة على المتصفح

الرموز والروابط والترويسات وأجسام الطلبات تُجمَّع كلياً على جانب العميل ولا تغادر جهازك — تحقق من ذلك في تبويب الشبكة. آمن للنقاط النهائية للإنتاج وبيانات الاعتماد الحية بصفر كشف بيانات.

مبني لسير عمل أدوات المطوّر

مُصمَّم حول حلقة اختبار واجهات API يومياً وإعادة إنتاج الطلبات من «Copy as cURL» في أدوات المطوّر. تبويب تحويل يُحلّل أمر curl ملصوقاً إلى fetch وrequests وGo وPHP وRuby وNode.js يُطلق في الإصدار القادم.

بدائل curl وعملاء HTTP

HTTPie

سطر أوامر، صياغة صديقة للإنسان

واجهة سطر أوامر حديثة بمخرج ملوّن وصياغة أكثر إيجازاً (<code><bdi>http POST api.example.com/users name=Ada</bdi></code>). يضبط <code><bdi>Content-Type</bdi></code> لـ <bdi>JSON</bdi> افتراضياً. أكثر ودية للاستخدام التفاعلي؛ يتفوق <bdi>curl</bdi> في الانتشار وقابلية نقل السكريبتات.

wget

سطر أوامر، مُركَّز على التنزيل

الأفضل للتنزيلات التكرارية ومرايا المواقع؛ يتبع إعادة التوجيه ويُعيد المحاولة افتراضياً. أضعف من <bdi>curl</bdi> للطرق العشوائية والترويسات المخصصة واختبار <bdi>API</bdi>. يُثبَّت غالباً جنباً إلى جنب مع <bdi>curl</bdi> على <bdi>Linux</bdi>.

Postman

تطبيق واجهة رسومية

واجهة رسومية كاملة لبناء الطلبات وحفظها ومشاركتها مع مجموعات وبيئات ومزامنة فريق. رائع للعمل الاستكشافي مع <bdi>API</bdi>؛ يمكنه استيراد وتصدير <bdi>curl</bdi>. أثقل من أمر سطر واحد للفحوصات السريعة أو <bdi>CI</bdi>.

Insomnia

تطبيق واجهة رسومية

بديل مفتوح المصدر وأخف من <bdi>Postman</bdi> مع بنّاء طلبات نظيف واستيراد وتصدير <bdi>curl</bdi>. جيد لتنظيم طلبات <bdi>API</bdi>؛ مثل <bdi>Postman</bdi>، أكثر مما تحتاجه لاستدعاء مكتوب كسكريبت واحد.

fetch() / requests

عملاء <bdi>HTTP</bdi> في الكود

تُعدّ <bdi>JavaScript fetch()</bdi> و<bdi>Python requests</bdi> الطريقة لإجراء الاستدعاء من كود التطبيق. أنشئ الطلب وتحقق منه كـ <bdi>curl</bdi> أولاً، ثم ترجمه — سيُولّد تبويب التحويل القادم الكود المكافئ لـ <bdi>fetch</bdi> و<bdi>requests</bdi> وعملاء آخرين.

أمثلة على أوامر curl

طلب GET بسيط

curl https://api.example.com/users

بدون علم الطريقة، يكون curl افتراضياً GET. هذا أبسط طلب ممكن — جلب مورد وطباعة جسم الاستجابة إلى الطرفية. أضف معاملات الاستعلام في البنّاء وستُلحق بترميز URL تلقائياً (?page=2&limit=50).

GET مع رمز Bearer

curl https://api.example.com/me \
  -H 'Authorization: Bearer YOUR_TOKEN'

أكثر استدعاء موثّق شيوعاً لواجهة REST API. يضيف إعداد Bearer المسبق ترويسة Authorization: Bearer تلقائياً. لفحص محتوى رمز JWT قبل إرساله، الصقه في محلّل JWT لدينا.

POST مع جسم JSON

curl -X POST https://api.example.com/users \
  -H 'Content-Type: application/json' \
  -d '{"name":"Ada","role":"admin"}'

ركيزة منشئ طلبات curl POST: نوع جسم JSON يضبط -X POST، ويرفق ترويسة Content-Type: application/json، ويمرّر الحمولة بـ -d. نسّق استجابات API الفوضوية بعدها بـ منسّق JSON لدينا.

POST بنموذج (urlencoded)

curl -X POST https://api.example.com/login \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'username=ada&password=s3cret'

إرسال نموذج HTML الكلاسيكي. كل زوج -d field=value يُربط بـ & ويُرسل كـ application/x-www-form-urlencoded. يُرمّز curl الأحرف المحجوزة؛ أنشئ الحقول في قسم جسم النموذج والأداة تجمع السلسلة لك.

رفع ملف متعدد الأجزاء

curl -X POST https://api.example.com/upload \
  -F 'file=@report.pdf' \
  -F 'title=Q3 report'

يستخدم أمر رفع الملف في curl علم -F لـ multipart/form-data. أضف البادئة @ للقيمة لإرفاق ملف من القرص؛ امزج حقول الملفات والنصوص بحرية. يضبط curl حد الفصل وترويسة Content-Type تلقائياً — لا تضبطها يدوياً أبداً.

تنزيل إلى ملف

curl -L -o archive.zip \
  https://example.com/files/archive.zip

احفظ جسم الاستجابة في ملف مسمّى بـ -o، وتابع -L أي إعادة توجيه إلى رابط التنزيل الفعلي (شائع مع روابط CDN وإصدارات الأصول). استخدم -O بدلاً من -o للاحتفاظ باسم ملف الخادم.

مصادقة Basic

curl -u ada:s3cret \
  https://api.example.com/private

تستخدم مصادقة Basic في curl علم -u user:pass؛ يُرمّز curl بيانات الاعتماد بـ Base64 في ترويسة Authorization: Basic على الشبكة. أرسل دائماً مصادقة Basic عبر HTTPS — فـ Base64 ترميز لا حماية للبيانات، وقابل للعكس بسهولة.

تصحيح تفصيلي

curl -v -i https://api.example.com/health

حين يسلك الطلب سلوكاً خاطئاً، تطبع -v سطر الطلب الكامل وكل ترويسة أُرسلت وأُستقبلت ومصافحة TLS؛ بينما تُدرج -i ترويسات الاستجابة في مخرج الجسم. أول شيء تلجأ إليه حين تعيد واجهة API رمز حالة خاطئ.

كيفية بناء أمر curl

  1. 1

    اختر طريقة HTTP

    اختر GET أو POST أو PUT أو PATCH أو DELETE أو HEAD أو OPTIONS. افتراضي curl هو GET؛ اختيار POST أو أفعال أخرى يضيف -X METHOD للأمر المُنشأ. أو انقر شريحة إعداد مسبق لضبط الطريقة وجسم مطابق بنقرة واحدة.

  2. 2

    أدخل الرابط ومعاملات الاستعلام

    اكتب رابط الطلب (مثلاً https://api.example.com/users). أضف معاملات الاستعلام كأزواج مفتاح/قيمة والأداة تُرمّزها بترميز URL وتُلحق ?key=value&… بالرابط تلقائياً — لا ترميز يدوي مطلوب.

  3. 3

    أضف الترويسات والمصادقة

    أضف ترويسات الطلب كأزواج مفتاح/قيمة، ثم اختر مخطط المصادقة: بلا، أو رمز Bearer، أو Basic (اسم مستخدم/كلمة مرور)، أو ترويسة مفتاح API مخصصة. تُولَّد ترويسة Authorization الصحيحة أو الترويسة المخصصة بالشكل الدقيق الذي يتوقعه الخادم.

  4. 4

    عيّن جسم الطلب

    لطلبات POST/PUT/PATCH، اختر نوع الجسم: الصق JSON خاماً (تُضاف ترويسة Content-Type تلقائياً)، أو أنشئ حقول نموذج مُرمَّزة بـ URL، أو اجمع رفعاً متعدد الأجزاء وحوّل أي حقل إلى ملف بالبادئة @.

  5. 5

    فعّل الخيارات

    شغّل الأعلام التي تحتاجها — اتباع إعادة التوجيه (-L)، أو TLS غير الآمن (-k)، أو تفصيلي (-v)، أو تضمين الترويسات (-i)، أو مضغوط (--compressed)، أو إخراج إلى ملف (-o)، أو مهلة اتصال، أو وكيل (-x). كل تبديل يحدّث الأمر فورياً.

  6. 6

    انسخ أو صدّر أو أعد ضبط

    انسخ الأمر المنتهي، أو صدّر .sh لتنزيله كسكريبت، أو أعد الضبط لمسح النموذج. استخدم مفتاح تعدد الأسطر للتبديل بين مخرج سطر واحد ومتعدد الأسطر مع شرطة مائلة عكسية قبل النسخ.

أخطاء curl الشائعة

غياب -X مع طريقة لها جسم

إرسال جسم بـ -d يعني ضمنياً POST، لكن إذا أردت PUT أو PATCH فيجب التصريح بذلك صراحةً بـ -X. نسيانه يُرسل الجسم كـ POST ويعيد الخادم الحالة الخاطئة أو يرفض الطلب.

✗ خطأ
# Intended a PATCH, but -d alone implies POST
curl -d '{"role":"admin"}' \
  https://api.example.com/users/7
✓ صحيح
# Set the verb explicitly
curl -X PATCH -d '{"role":"admin"}' \
  -H 'Content-Type: application/json' \
  https://api.example.com/users/7

غياب Content-Type في POST بـ JSON

إرسال JSON بـ -d لا يضبط ترويسة Content-Type — يكون افتراضي curl application/x-www-form-urlencoded. معظم واجهات API حينها تفشل في تحليل الجسم وتعيد 400 أو 415. أرفق دائماً نوع محتوى JSON (أو استخدم إعداد JSON المسبق الذي يضيفه تلقائياً).

✗ خطأ
# Server sees urlencoded, not JSON — 400/415
curl -X POST https://api.example.com/users \
  -d '{"name":"Ada"}'
✓ صحيح
# Declare the JSON content type
curl -X POST https://api.example.com/users \
  -H 'Content-Type: application/json' \
  -d '{"name":"Ada"}'

الهروب بعلامة اقتباس مفردة مقابل مزدوجة

داخل علامات الاقتباس المزدوجة توسّع الصدفة $ والخلفية و!، مُشوّهةً JSON أو كاسرةً عند وجود $variable في حمولتك. علامات الاقتباس المفردة تُمرّر الجسم حرفياً. استخدم علامات اقتباس مفردة لأجسام JSON؛ انتقل إلى علامات مزدوجة فقط في cmd.exe الذي لا يدعم علامات الاقتباس المفردة.

✗ خطأ
# $name gets expanded by the shell to empty string
curl -d "{\"user\":\"$name\"}" \
  https://api.example.com/users
✓ صحيح
# Single quotes send the body literally
curl -d '{"user":"$name"}' \
  https://api.example.com/users

استخدام -d في طلب GET

إضافة -d إلى طلب يحوّله بصمت إلى POST. إذا أردت GET مع معاملات استعلام، ضعها في الرابط (أو استخدم -G لطيّ بيانات -d في سلسلة الاستعلام). -d في GET من أكثر أسباب «طلب GET الخاص بي لا يعمل» شيوعاً.

✗ خطأ
# -d makes this a POST, not a GET
curl -d 'page=2&limit=50' \
  https://api.example.com/users
✓ صحيح
# Query string on the URL keeps it a GET
curl 'https://api.example.com/users?page=2&limit=50'

استمرار السطر في Windows: ^ مقابل \

الشرطة المائلة العكسية (\) تواصل الأمر إلى السطر التالي في bash وGit Bash وWSL. في cmd.exe حرف الاستمرار هو الإقحام (^)، وفي PowerShell تُستخدم الخلفية (`). لصق أمر مستمر بشرطة مائلة عكسية في cmd يكسره — بدّل هذه الأداة إلى مخرج سطر واحد لـ cmd في Windows.

✗ خطأ
:: cmd.exe — backslash is not a continuation char
curl -X POST https://api.example.com/users \
  -d '{"name":"Ada"}'
✓ صحيح
:: cmd.exe — one line, or use ^ to continue
curl -X POST https://api.example.com/users -d "{\"name\":\"Ada\"}"

مسافات في الرابط غير مُرمَّزة

مسافة خام (أو & أو # أو ?) في رابط أو قيمة استعلام تكسر الأمر — تُقسّم الصدفة المعامل ويرى curl رابطاً مقطوعاً. رمّز القيمة بالنسبة المئوية (المسافة تصبح %20) أو دع curl يُرمّزها بـ --data-urlencode. حقول معامل الاستعلام في هذه الأداة تُرمَّز تلقائياً.

✗ خطأ
# Space splits the argument — curl sees two args
curl https://api.example.com/search?q=hello world
✓ صحيح
# Encode the space (or quote the whole URL)
curl 'https://api.example.com/search?q=hello%20world'

حالات الاستخدام الشائعة

اختبار REST API
أنشئ الطلبات وأطلقها ضد نقطة نهاية REST دون مغادرة الطرفية: عيّن الطريقة، والصق رمز Bearer، وأرسل جسم JSON، واقرأ الاستجابة. أسرع طريقة للتأكد أن واجهة API تتصرف صحيحاً قبل كتابة كود العميل.
إعادة إنتاج طلب من التوثيق
يُظهر توثيق API النقاط النهائية والمعاملات لكن نادراً أمراً كاملاً جاهزاً للنسخ. أدخل الطريقة والرابط والترويسات والمصادقة هنا واحصل على أمر curl يعمل كما هو — لا صراع مع الاقتباس أو ترويسات Content-Type مفقودة.
سكريبتات اختبار دخان CI/CD
أنشئ أمر curl لفحص السلامة أو اختبار دخان ما بعد النشر، ثم صدّر .sh لإدراجه في خط أنابيب. أضف --connect-timeout و--max-time حتى لا تتمكن نقطة نهاية معلقة من حجب البناء، وتحقق من رموز الحالة بـ -w.
رفع الملفات وتنزيلها
اجمع رفع multipart/form-data بـ -F field=@file، أو أنشئ تنزيلاً بـ -L -o filename يتبع إعادة التوجيه إلى CDN. رمّز أي أسماء ملفات أو قيم استعلام صعبة أولاً بـ مُرمِّز URL لدينا.
تصحيح خطافات الويب
أعد تشغيل حمولة خطاف ويب بـ POST لجسم JSON نفسه الذي يرسله المزوّد، مع الترويسات الصحيحة للتوقيع وContent-Type. أعد إنتاج الطلب الدقيق محلياً لتصحيح سبب رفض معالجك له.
تقارير الأخطاء القابلة للإعادة
الصق أمر curl واحداً مكتفياً بذاته في تقرير خلل أو طلب سحب حتى يتمكن أي شخص من إعادة إنتاج الطلب الدقيق — الطريقة والترويسات وعنصر نائب للمصادقة والجسم. أوضح بكثير من وصف الطلب بلغة عادية.
تعلّم أعلام curl
شاهد كيف يرتبط كل خيار نموذج بعلم حقيقي — اختر مصادقة Basic وشاهد -u يظهر، أضف جسم JSON وشاهد ترويسة Content-Type تُرفق. طريقة عملية لتعلّم الصياغة، مقترنة بـ ورقة غش curl لدينا.
تحضير طلب للتحويل إلى كود
أنشئ الطلب وتحقق منه كـ curl أولاً، ثم ترجمه إلى عميل HTTP في تطبيقك. سيُحوّل تبويب التحويل القادم أمر curl ملصوقاً إلى fetch وrequests وGo وPHP وRuby وNode.js — ابدأ من أمر curl تعرف أنه يعمل.

مرجع أعلام curl والصياغة

اقتباس الصدفة والهروب
تلفّ الأداة القيم بعلامات اقتباس مفردة، الشكل الأأمن في صدفات POSIX لأنه لا يُوسَّع شيء داخل سلسلة مقتبسة بعلامة مفردة. تُصدَر علامة الاقتباس المفردة الحرفية داخل قيمة كتسلسل '\'' (إغلاق الاقتباس، ثم الاقتباس المهروب، ثم إعادة الفتح). في cmd.exe بدّل إلى علامات اقتباس مزدوجة؛ يُشغّل Git Bash وWSL الأوامر المُنشأة بعلامة اقتباس مفردة دون تعديل.
-d مقابل --data-raw مقابل --data-binary
يُزيل -d/--data أسطر السطر والإرجاع من الجسم — مناسب لأزواج key=value، مُسرِّب للمحتوى متعدد الأسطر. --data-raw مماثل لكنه لن يعامل @ الأولية كاسم ملف. --data-binary يُرسل البايتات كما هي (استخدم @file لرفع محتوى الملف الخام). الثلاثة تعني POST إلا إذا جاوزت الطريقة.
متعدد الأجزاء (-F) مقابل مُرمَّز بـ URL (-d)
ينتج -F field=value نوع multipart/form-data بحد مُولَّد — مطلوب لرفع الملفات (-F file=@path) والنماذج المختلطة من ملفات ونصوص. ينتج -d field=value نوع application/x-www-form-urlencoded، سلسلة واحدة مربوطة بـ &. لا تضبط Content-Type يدوياً للمتعدد الأجزاء؛ يحسب curl الحد ويضبط الترويسة بنفسه.
ترميز ترويسة المصادقة
ترسل مصادقة Bearer ترويسة Authorization: Bearer token كما هي (RFC 6750). تُرمَّز مصادقة Basic من -u user:pass بـ Base64 في Authorization: Basic base64 على الشبكة — ترميز فقط وليس حماية، استخدم HTTPS. مفتاح API هو أي ترويسة مخصصة تتطلبها الخدمة، مثلاً X-API-Key: value.
ترميز سلسلة الاستعلام
تُرمَّز معاملات الاستعلام المضافة في البنّاء بترميز النسبة المئوية وتُلحق كـ ?key=value&key2=value2. تُهرَب الأحرف المحجوزة (المسافات، &، =، #) حتى يكون الرابط صالحاً. لحقول الجسم التي يجب ترميزها، يتولى --data-urlencode في curl الترميز وقت الطلب.
سلوك إعادة التوجيه (-L)
بدون -L، يطبع curl استجابة 301/302 ويتوقف. مع -L يتبع ترويسة Location إلى الرابط النهائي. لاحظ أن curl يحذف ترويسة Authorization حين تعبر إعادة التوجيه إلى مضيف مختلف (افتراضي أمني)؛ استخدم --location-trusted فقط حين تفهم الآثار.
الاستجابات المضغوطة
تُضيف --compressed ترويسة Accept-Encoding مُعلنةً دعم gzip/deflate/brotli وتفك ضغط الاستجابة بشفافية، موفّرةً عرض النطاق الترددي. الجسم المفكوك مطابق لطلب غير مضغوط — تحسين نقل بحت، آمن للتمكين في معظم استدعاءات API.
المخرج: -o مقابل -O
تكتب -o filename جسم الاستجابة في ملف تسمّيه؛ تحفظ -O تحت اسم الملف البعيد من مسار الرابط. كلتاهما تمنع التفريغ المعتاد على stdout. اجمع مع -L حتى تحلّ إعادات التوجيه إلى الأصل الحقيقي قبل كتابة الملف.

أفضل الممارسات لطلبات curl

لا تُضمِّن الأسرار بشكل ثابت في الأوامر المشتركة
أمر curl تلصقه في طلب سحب أو تذكرة أو محادثة سيقرأه آخرون وتُفهرسه أدوات. استبدل الرموز وكلمات المرور بعنصر نائب (YOUR_TOKEN) أو أشر إلى متغير بيئة (-H "Authorization: Bearer $API_TOKEN"). لبيانات الاعتماد الطويلة، يمكن لـ curl قراءة ترويسة من ملف بـ -H @headerfile حتى لا يظهر السرّ في سجل الصدفة.
فضّل --data-binary @file للحمولات الثنائية
حين يكون الجسم ملفاً بايتاته مهمة — صورة أو حمولة موقّعة أو JSON المسافات البيضاء فيه مهمة — استخدم --data-binary @file بدلاً من -d @file. تُزيل -d العادية أسطر السطر والإرجاع بصمت، مُتلفةً المحتوى الثنائي ومتعدد الأسطر. --data-binary يُرسل الملف كما هو على القرص.
اقتبس قيم الترويسات
اعرض دائماً قيم -H بين اقتباسات: -H 'Content-Type: application/json'. بدون اقتباس، تُقسّم المسافة بعد النقطتين المعامل ويرى curl ترويسة مشوّهة. علامات الاقتباس المفردة تمنع الصدفة أيضاً من توسيع $ و* وغيرها من الأحرف الخاصة داخل القيمة — بالضبط ما تُصدره هذه الأداة افتراضياً.
استخدم --compressed لتوفير عرض النطاق
أضف --compressed إلى استدعاءات API والتنزيلات لطلب ترميز gzip/brotli وليفك curl الضغط بشفافية. لواجهات API ذات بيانات JSON الكثيفة يمكن تقليل حجم النقل بنسبة 70–90% دون أي تغيير على الاستجابة التي تراها — مكسب مجاني في السكريبتات التي تستعلم النقاط النهائية بتكرار.
ثبّت المهلات في السكريبتات
في أي سياق آلي، أضف --connect-timeout و--max-time حتى لا تتمكن نقطة نهاية بطيئة أو معلقة من حجب خط أنابيب للأبد. فحص سلامة بـ --max-time 10 يفشل بسرعة ويتيح لـ CI المتابعة. اجمع مع --retry N لاستيعاب التذبذبات العابرة في الشبكة دون الاستسلام فوراً.
تحقق بـ -v قبل الأتمتة
قبل إدراج أمر curl في سكريبت أو وظيفة cron، شغّله مرة واحدة بـ -v لرؤية سطر الطلب الدقيق والترويسات ومصافحة TLS. هي أسرع طريقة لاكتشاف طريقة خاطئة، أو Content-Type مفقودة، أو ترويسة مصادقة لم تُرفق — صحّح تفاعلياً، ثم احذف -v للإنتاج.

الأسئلة الشائعة

ما الذي تفعله هذه الأداة؟
تبني أمر curl جاهزاً للتشغيل من نموذج بسيط. تختار طريقة HTTP، وتكتب رابطاً، وتضيف معاملات الاستعلام والترويسات، وتختار مخطط المصادقة (بلا، أو Bearer، أو Basic، أو ترويسة مفتاح API)، وتعيّن جسم الطلب (JSON أو نموذج أو متعدد الأجزاء أو رفع ملف)، وتُفعّل أعلام الخيارات كاتباع إعادة التوجيه أو التفصيل. بينما تملأ النموذج، يُعاد بناء أمر curl فورياً أسفل الصفحة — انسخه، أو صدّره كسكريبت .sh، أو بدّل بين مخرج سطر واحد ومتعدد الأسطر. إنه منشئ أوامر curl مُصمَّم لسير العمل اليومي في اختبار REST API، أو إعادة إنتاج طلب من التوثيق، أو إسقاط أمر قابل للإعادة في تقرير خلل. للمرجع الأعمق حول الأعلام نفسها، راجع ورقة غش curl لدينا.
هل تُرفع بياناتي (الرموز، الروابط) إلى أي مكان؟
لا. يُجمَّع الأمر بأكمله في متصفحك بـ JavaScript. رموزك وبيانات الاعتماد وروابطك وترويساتك وأجسام الطلبات لا تُنقل ولا تُخزَّن ولا تُسجَّل على أي خادم — يمكنك التحقق من ذلك في تبويب الشبكة بمتصفحك، حيث لا يُطلق بناء أمر أي طلب شبكة. هذا هو سبب أمان استخدام الأداة مع نقاط نهاية الإنتاج الفعلية ومفاتيح API الحية: لا شيء تكتبه يغادر جهازك. يؤدي الأمر وظيفته فقط حين تنسخه وتشغّله بنفسك في طرفيتك.
كيف أرسل طلب POST مع JSON في curl؟
اضبط الطريقة على POST واختر نوع جسم JSON؛ تنتج الأداة curl -X POST url -H 'Content-Type: application/json' -d '{…}'. جزءان مهمان: علم -d (أو --data) يحمل الجسم، وترويسة Content-Type: application/json تخبر الخادم كيفية تحليله — احذف الترويسة وكثير من الأطر ستتجاهل الحمولة أو تسيء قراءتها. يوفر curl الحديث (7.82+) اختصاراً --json يضبط الترويسة والجسم معاً. بعد الاستدعاء، الصق الاستجابة في منسّق JSON لدينا للطباعة الجميلة والتحقق.
كيف أضيف رمز Bearer إلى طلب curl؟
أضف ترويسة Authorization بالقيمة Bearer YOUR_TOKEN، أو اختر إعداد «GET مع Bearer» المسبق والصق رمزك. الأمر المُنشأ هو curl url -H 'Authorization: Bearer YOUR_TOKEN'. الكلمة Bearer، ثم مسافة واحدة، ثم الرمز — هذا الشكل الدقيق مطلوب بمعيار OAuth 2.0 Bearer (RFC 6750). لفحص مطالبات الرمز وانتهاء صلاحيته قبل إرساله، فكّ ترميزه بـ محلّل JWT لدينا.
كيف أرفع ملفاً بـ curl؟
استخدم نوع جسم Multipart وحوّل حقلاً إلى ملف: تصدر الأداة curl -X POST url -F 'file=@/path/to/file'. تخبر البادئة @ بقراءة الملف من القرص وإرساله كـ multipart/form-data؛ يمكن إضافة حقول -F أخرى لكل من الملفات والقيم النصية في الطلب نفسه. لا تضبط ترويسة Content-Type بنفسك للمتعدد الأجزاء — يُولّد curl الحد ويضبط الترويسة تلقائياً، وتجاوزها يكسر الرفع. لأمر PUT بملف واحد بدلاً من ذلك، يستخدم curl -T file url.
هل يمكنني استيراد أمر منسوخ من أدوات مطوّر المتصفح («Copy as cURL»)?
ليس بعد — هذا تبويب التحويل، الذي سيُطلق في الإصدار القادم. سيُحلّل أمر curl ملصوقاً (بما فيه الأمر الذي تولّده أدوات المطوّر بـ «Copy as cURL») ويُترجمه إلى JavaScript fetch وPython requests وGo وPHP وRuby وNode.js. الأداة حالياً بنّاء: أعد إنشاء الطلب بملء حقول الرابط والترويسات والمصادقة والجسم يدوياً. مخرج أدوات المطوّر مفصّل لكنه مقروء — انسخ كل ترويسة -H إلى قسم الترويسات والرابط إلى حقل الرابط.
كيف يختلف curl على Windows؟
يتصرف ثنائي curl بالطريقة نفسها؛ يختلف الاقتباس في الصدفة. في cmd.exe تستخدم علامات اقتباس مزدوجة (") حول القيم والإقحام (^) لاستمرار السطر، والاقتباس المفرد لا معنى خاص له. في PowerShell، يكون curl اسماً مستعاراً لـ Invoke-WebRequest إلا إذا استدعيت curl.exe صراحةً، وقواعد الاقتباس تختلف أيضاً. الخيار الأسهل هو Git Bash أو WSL، حيث تعمل أوامر الاقتباس المفرد من الأسلوب Unix التي تولّدها هذه الأداة دون تعديل. إذا كان لا بد من استخدام cmd، بدّل الأمر المُنشأ إلى سطر واحد وأبدل اقتباس '…' بـ "…".
ما الفرق بين -d و--data-raw و--data-binary؟
-d (اسم مستعار --data) يُرسل جسماً ويزيل أسطر السطر والإرجاع من البيانات — مناسب لأزواج key=value في النماذج، محفوف بمخاطر لـ JSON الممتد عبر أسطر. --data-raw مطابق لكنه لا يعامل @ الأولية كاسم ملف، لذا فهو الخيار الآمن حين قد تبدأ بياناتك حرفياً بـ @. --data-binary يُرسل البايتات كما هي دون أي إزالة لأسطر السطر — العلم الصحيح لرفع المحتوى الخام لملف (--data-binary @file.json) أو أي حمولة تكون فيها المسافات البيضاء مهمة. الثلاثة تعني POST إلا إذا جاوزت الطريقة.
كيف أرسل ملفات تعريف الارتباط بـ curl؟
استخدم -b لإرسال ملفات تعريف الارتباط و-c لحفظها. تُرسل -b 'name=value' سلسلة ملف تعريف ارتباط حرفية، بينما تقرأ -b cookies.txt ملفات تعريف الارتباط من ملف بتنسيق Netscape. لالتقاط ملفات تعريف الارتباط التي يضبطها خادم (مثلاً بعد تسجيل الدخول)، أضف -c cookies.txt لكتابتها في جرة، ثم أعد استخدام تلك الجرة بـ -b cookies.txt في الطلب التالي. يركّز هذا البنّاء على الترويسات والمصادقة والجسم؛ لترويسة ملف تعريف الارتباط يمكنك أيضاً إضافة ترويسة Cookie: name=value في قسم الترويسات.
كيف أتبع إعادة التوجيه؟
فعّل «اتباع إعادة التوجيه (-L)» أو أضف العلم -L يدوياً. بشكل افتراضي يطبع curl استجابة 301/302 ويتوقف؛ تخبر -L بمتابعة ترويسة Location إلى الوجهة النهائية. هذا ضروري لروابط التنزيل خلف شبكات CDN وروابط التقصير وواجهات API التي تعيد توجيه HTTP إلى HTTPS. اجمع مع -o filename لحفظ ملف محمّل بعد حل إعادة التوجيه.
كيف أضبط مهلة الطلب؟
استخدم خيار «مهلة الاتصال» لإضافة --connect-timeout seconds، الذي يحد من وقت انتظار curl لإقامة الاتصال. لسقف على النقل بأكمله — الاتصال زائد التنزيل — أضف --max-time seconds إلى الأمر المُنشأ يدوياً. تثبيت المهلات ممارسة فضلى في أي سكريبت أو اختبار دخان CI: بدونها يمكن لنقطة نهاية معلقة أن تحجب خط أنابيبك إلى الأبد. اجمع مع --retry N إذا أردت من curl إعادة المحاولة عند الأعطال العابرة.

أدوات ذات صلة

عرض جميع الأدوات →

محوّل الأنظمة العددية — ثنائي وست عشري وعشري وثماني

أدوات التحويل

حوّل بين الأنظمة الثنائية والست عشرية والعشرية والثمانية وأي أساس من 2 إلى 36 فوراً — أداة مجانية أونلاين تعمل في متصفّحك. جرّبها الآن.

محوّل Base64 — ترميز وفك ترميز أونلاين

الترميز والتنسيق

رمّز وفك ترميز Base64 مجاناً أونلاين — محوّل فوري مع دعم UTF-8 والرموز التعبيرية. خصوصية 100% — يعمل في متصفّحك. جرّبه الآن.

محوّل حالة الأحرف — UPPERCASE والمزيد

معالجة النصوص

حوّل النص فوراً بين UPPERCASE وlowercase وTitle Case وcamelCase وsnake_case وkebab-case و9 صيغ أخرى. مجاني، يعمل بالمتصفح فقط، بلا تسجيل أو رفع.

محوّل ألوان HEX/RGB/OKLCH

أدوات التحويل

حوّل ألوان HEX إلى RGB و HSL و OKLCH و OKLAB و CMYK داخل متصفحك — انسخ أي صيغة بنقرة واحدة. مجاني، بلا تسجيل، ألوانك لا تغادر الصفحة أبداً.

مولد crontab ومنشئ تعبير cron

التاريخ والوقت

أنشئ تعبيرات cron وتحقق منها وفُكَّها داخل متصفحك. معاينة مباشرة للتشغيل التالي بالتوقيت المحلي أو UTC. صيغة POSIX من خمسة حقول، قوالب جاهزة، ووصف بلغة طبيعية. مجاني، خاص، بلا تسجيل.

محوّل CSV إلى JSON

الترميز والتنسيق

حوّل CSV إلى JSON في متصفحك. RFC 4180، استنتاج الأنواع، صف العنوان، أمان الأعداد الكبيرة. خصوصية 100%.