كيفية إرسال طلبات POST باستخدام cURL

cURL هي أداة متعددة الاستخدامات لسطر الأوامر مصممة لنقل البيانات بسلاسة عبر بروتوكولات الشبكة المختلفة، بما في ذلك HTTP وHTTPS وFTP. أصبحت cURL، المتوفرة على جميع أنظمة التشغيل الرئيسية، الأداة القياسية لإرسال طلبات HTTP من سطر الأوامر. تدعم أداة cURL متعددة الأنظمة بروتوكولات مثل HTTP وHTTPS وFTP وIMAP، مما يجعل من السهل إرسال الطلبات إلى واجهات برمجة التطبيقات واستخراج مواقع الويب. نظرًا لتوفرها على نطاق واسع ودعم البروتوكول، يتم الإشارة إلى cURL عادةً في وثائق واجهة برمجة التطبيقات REST كطريقة سريعة لاختبار مكالمات واجهة برمجة التطبيقات مباشرةً من سطر الأوامر.
يتعمق هذا البرنامج التعليمي في تنفيذ طلبات POST باستخدام cURL، مما يتيح الاتصال الفعال مع الخوادم من خلال تعليمات سطر الأوامر البسيطة.
ما هو طلب POST؟
طلب POST هو طريقة HTTP تُستخدم لإرسال البيانات إلى الخادم وهي واحدة من أكثر طرق HTTP شيوعًا. وعلى عكس طلبات GET، حيث يتم تضمين البيانات في عنوان URL، تنقل طلبات POST البيانات في نص الطلب. وهذا يسمح بنقل البيانات بشكل سري ويتجنب قيود طول عنوان URL التي تفرضها المتصفحات على طلبات GET.
تُستخدم طلبات POST بشكل متكرر لإرسال النماذج وتحميل الملفات وإرسال بيانات JSON إلى واجهات برمجة التطبيقات. نظرًا لأن البيانات مخزنة في نص الطلب، فهي غير مرئية في سجل المتصفح، وعلى عكس طلبات GET، لا يتم تخزين طلبات POST عادةً في ذاكرة التخزين المؤقت بواسطة المتصفحات.
حالات الاستخدام العملية لطلبات cURL POST
تُستخدم طلبات cURL POST على نطاق واسع في سيناريوهات مختلفة، بما في ذلك:
- اختبار واجهات برمجة التطبيقات REST – يستخدم المطورون cURL لاختبار نقاط نهاية واجهة برمجة التطبيقات بسرعة قبل تنفيذها في التطبيقات.
- أتمتة عمليات إرسال النماذج – باستخدام cURL، يمكنك أتمتة التفاعلات مع نماذج الويب، وإرسال البيانات دون إدخال يدوي.
- تحميل الملفات – تسمح العديد من واجهات برمجة التطبيقات بتحميل الملفات باستخدام طلبات POST، مما يجعل cURL أداة فعالة لأتمتة هذه العملية.
- التفاعل مع أنظمة المصادقة – يمكن للمطورين استخدام cURL لمصادقة المستخدمين والوصول إلى الموارد المحمية باستخدام رموز API أو بيانات الاعتماد.
- استخراج البيانات ودمجها - يتم تبسيط استخراج البيانات ودمجها من مصادر مختلفة عبر الإنترنت باستخدام إمكانيات طلب POST الخاصة بـ cURL.
تنفيذ طلب POST باستخدام cURL
للبدء في استخدام cURL لطلبات POST، تأكد من تثبيته على نظامك. إذا لم تقم بتثبيته بعد، فراجع دليلنا حول إعداد cURL. يوجد أدناه جدول مرجعي يلخص خيارات cURL الأساسية:
علم قصير | علم طويل | الحجج | وصف |
-إكس | --طلب | (استخدم "POST" لطلبات POST) | يحدد طريقة HTTP للطلب |
-ب | --ملف تعريف الارتباط | يرسل ملفات تعريف الارتباط في الطلب | |
-ج | --جرة ملفات تعريف الارتباط | يحفظ ملفات تعريف الارتباط المستلمة في ملف | |
-د | --بيانات | ينقل البيانات في طلب POST | |
-ف | --يفشل | يضمن الفشل الصامت في حالة حدوث أخطاء في الخادم | |
-ف | --استمارة | <الاسم=المحتوى> | إرسال بيانات النموذج (application/x-www-form-urlencoded) |
-ح | --العنوان | رأس الصفحة/@ملف | يتضمن رؤوس HTTP مخصصة |
-أنا | --يشمل | يعرض رؤوس HTTP في الاستجابة | |
-ل | --رأس | يسترجع فقط الرؤوس | |
-ك | --غير آمن | يتجاوز التحقق من SSL | |
-ل | --موقع | يتبع عمليات إعادة التوجيه (3XX) | |
-و | --الإخراج | يحفظ الناتج في ملف محدد | |
-ا | --الاسم البعيد | يحفظ الناتج باسم الملف البعيد | |
-س | --صامت | يقوم بقمع رسائل الإخراج | |
-ف | --مطول | تمكين الإخراج التفصيلي (التصحيح) | |
-و | --كتابة خارج | تفاصيل استجابة المخرجات |
لعرض القائمة الكاملة للخيارات المتاحة، استخدم:
تجعيد --مساعدة
الأخطاء الشائعة وكيفية إصلاحها
على الرغم من قوة cURL، إلا أن المستخدمين غالبًا ما يواجهون أخطاء عند إرسال طلبات POST. فيما يلي بعض المشكلات الشائعة والحلول:
- curl: (6) تعذر حل المضيف - هذا يعني أن اسم المجال غير صحيح أو أن هناك مشكلة في حل DNS. تحقق مرة أخرى من عنوان URL.
- curl: (7) فشل الاتصال بالمضيف - يشير إلى أن الخادم غير قابل للوصول. تأكد من أن الخادم متصل بالإنترنت وأن لديك اتصالاً نشطًا بالإنترنت.
- curl: (35) خطأ اتصال SSL - إذا فشل الطلب بسبب مشكلات SSL، فحاول استخدام -k لتجاوز التحقق من SSL.
- طلب خاطئ HTTP 400 – هذا يعني أن الخادم رفض الطلب، غالبًا بسبب تنسيق بيانات غير صحيح. تحقق من نوع المحتوى وحمولة البيانات.
- HTTP 401 غير مصرح به – يحدث عندما تكون المصادقة مطلوبة ولكنها مفقودة أو غير صحيحة. تأكد من تمرير مفاتيح API أو بيانات الاعتماد بشكل صحيح باستخدام -u أو -H "Authorization: Bearer <token>".
بناء جملة طلب POST الأساسي
curl -X POST -d "مرحبًا" https://example.com/api
في هذا الأمر:
- -X POST يحدد نوع الطلب.
- -d "Hello" يحدد البيانات التي يتم إرسالها.
- https://example.com/api هو عنوان URL المستهدف.
إعداد رؤوس نوع المحتوى
curl -X POST -H "نوع المحتوى: text/plain" -d "مرحبًا" https://example.com/api
إضافة -H "Content-Type: text/plain" يخبر الخادم أن تنسيق البيانات هو نص عادي.
إرسال بيانات JSON
curl -X POST -H "نوع المحتوى: application/json" -d '{"key":"value"}' https://example.com/api
يضمن استخدام application/json كنوع للمحتوى تفسير البيانات بشكل صحيح على أنها JSON.
إرسال بيانات XML
curl -X POST -H "نوع المحتوى: application/xml" -d '<?xml version="1.0" encoding="UTF-8"?><root><name>John Doe</name><age>30</age></root>' https://example.com/api
رفع الملفات باستخدام POST
curl -X POST -F "file=@/path/to/img.png" https://example.com/api/upload
لتحميل ملفات متعددة:
curl -X POST -F "file=@/path/to/img1.png" -F "file=@/path/to/img2.png" https://example.com/api/upload
المصادقة باستخدام cURL
curl -u اسم المستخدم: كلمة المرور https://example.com/login
استبدل اسم المستخدم وكلمة المرور ببيانات الاعتماد الفعلية.
خاتمة
يُبسِّط cURL تفاعلات HTTP من خلال خيارات سطر الأوامر القوية والمرنة. من خلال إتقان طلبات POST، يمكن للمطورين إدارة اتصالات API ونقل البيانات وتحميل الملفات بكفاءة. سواء كنت بحاجة إلى اختبار نقاط نهاية API أو أتمتة عمليات إرسال النماذج أو استخراج البيانات من مواقع الويب، فإن cURL يوفر حلاً خفيف الوزن وفعالًا. استمر في تجربة cURL لتحسين سير عملك!
يرجى ملاحظة أن Plisio يقدم لك أيضًا:
قم بإنشاء فواتير تشفير بنقرتين and قبول التبرعات المشفرة
14 تكاملات
- BigCommerce
- Ecwid
- Magento
- Opencart
- osCommerce
- PrestaShop
- VirtueMart
- WHMCS
- WooCommerce
- X-Cart
- Zen Cart
- Easy Digital Downloads
- ShopWare
- Botble
10 مكتبات لغات البرمجة الأكثر شيوعًا
19 عملات مشفرة و 12 بلوكشين
- Bitcoin (BTC)
- Ethereum (ETH)
- Ethereum Classic (ETC)
- Tron (TRX)
- Litecoin (LTC)
- Dash (DASH)
- DogeCoin (DOGE)
- Zcash (ZEC)
- Bitcoin Cash (BCH)
- Tether (USDT) ERC20 and TRX20 and BEP-20
- Shiba INU (SHIB) ERC-20
- BitTorrent (BTT) TRC-20
- Binance Coin(BNB) BEP-20
- Binance USD (BUSD) BEP-20
- USD Coin (USDC) ERC-20
- TrueUSD (TUSD) ERC-20
- Monero (XMR)