منشئ أوامر cURL وبنّاؤها
ابنِ أوامر curl في متصفحك — حدد الطريقة والترويسات والمصادقة والجسم، واحصل على أمر جاهز للنسخ فوراً. إعدادات مسبقة لـ Bearer وPOST JSON ورفع الملفات. مجاني وخاص وبلا تسجيل.
ما هو أمر 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
اختر طريقة HTTP
اختر GET أو POST أو PUT أو PATCH أو DELETE أو HEAD أو OPTIONS. افتراضي curl هو GET؛ اختيار POST أو أفعال أخرى يضيف
-X METHODللأمر المُنشأ. أو انقر شريحة إعداد مسبق لضبط الطريقة وجسم مطابق بنقرة واحدة. - 2
أدخل الرابط ومعاملات الاستعلام
اكتب رابط الطلب (مثلاً
https://api.example.com/users). أضف معاملات الاستعلام كأزواج مفتاح/قيمة والأداة تُرمّزها بترميز URL وتُلحق?key=value&…بالرابط تلقائياً — لا ترميز يدوي مطلوب. - 3
أضف الترويسات والمصادقة
أضف ترويسات الطلب كأزواج مفتاح/قيمة، ثم اختر مخطط المصادقة: بلا، أو رمز Bearer، أو Basic (اسم مستخدم/كلمة مرور)، أو ترويسة مفتاح API مخصصة. تُولَّد ترويسة
Authorizationالصحيحة أو الترويسة المخصصة بالشكل الدقيق الذي يتوقعه الخادم. - 4
عيّن جسم الطلب
لطلبات POST/PUT/PATCH، اختر نوع الجسم: الصق JSON خاماً (تُضاف ترويسة
Content-Typeتلقائياً)، أو أنشئ حقول نموذج مُرمَّزة بـ URL، أو اجمع رفعاً متعدد الأجزاء وحوّل أي حقل إلى ملف بالبادئة@. - 5
فعّل الخيارات
شغّل الأعلام التي تحتاجها — اتباع إعادة التوجيه (
-L)، أو TLS غير الآمن (-k)، أو تفصيلي (-v)، أو تضمين الترويسات (-i)، أو مضغوط (--compressed)، أو إخراج إلى ملف (-o)، أو مهلة اتصال، أو وكيل (-x). كل تبديل يحدّث الأمر فورياً. - 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للإنتاج.
الأسئلة الشائعة
ما الذي تفعله هذه الأداة؟
هل تُرفع بياناتي (الرموز، الروابط) إلى أي مكان؟
كيف أرسل طلب POST مع JSON في curl؟
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؟
curl -X POST url -F 'file=@/path/to/file'. تخبر البادئة @ بقراءة الملف من القرص وإرساله كـ multipart/form-data؛ يمكن إضافة حقول -F أخرى لكل من الملفات والقيم النصية في الطلب نفسه. لا تضبط ترويسة Content-Type بنفسك للمتعدد الأجزاء — يُولّد curl الحد ويضبط الترويسة تلقائياً، وتجاوزها يكسر الرفع. لأمر PUT بملف واحد بدلاً من ذلك، يستخدم curl -T file url. هل يمكنني استيراد أمر منسوخ من أدوات مطوّر المتصفح («Copy as cURL»)?
-H إلى قسم الترويسات والرابط إلى حقل الرابط. كيف يختلف curl على Windows؟
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%.