إجراء طلبات HTTP باستخدام cURL
استخدموا cURL لإجراء طلبات GET وPOST إلى واجهات API خارجية
إجراء طلبات HTTP باستخدام cURL درس مجاني في PHP Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في PHP Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة PHP Academy 4 دروس في المجموع.
ما هو cURL؟
cURL مكتبة لنقل البيانات باستخدام عناوين URL. وتوفّر PHP واجهة لها عبر الدوال curl_*، ما يجعلها الطريقة القياسية لاستدعاء واجهات API الخارجية.
طلب GET أساسي
أنشئ مقبض cURL، واضبط الخيارات، ونفّذ الطلب، ثم أغلق المقبض.
<?php
$ch = curl_init("https://api.example.com/users");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;CURLOPT_RETURNTRANSFER
من دون هذا الخيار، تطبع curl_exec() الاستجابة مباشرةً. اضبطه على true لالتقاط الاستجابة في متغير.
طلب POST
اضبط CURLOPT_POST وCURLOPT_POSTFIELDS لإجراء طلب POST.
<?php
$ch = curl_init("https://api.example.com/users");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode(["name" => "Alice"]),
CURLOPT_HTTPHEADER => ["Content-Type: application/json"],
]);
$response = curl_exec($ch);
curl_close($ch);ضبط الرؤوس
مرّر مصفوفة من سلاسل الرؤوس إلى CURLOPT_HTTPHEADER.
<?php
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer ".$token,
"Accept: application/json",
]);الحصول على رمز حالة HTTP
استرجع رمز حالة الاستجابة بعد curl_exec() باستخدام curl_getinfo().
<?php
$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo $statusCode; // 200, 404, 500, etc.معالجة الأخطاء
تحقّق من curl_errno() وcurl_error() لاكتشاف أخطاء الاتصال والإبلاغ عنها.
<?php
if (curl_errno($ch)) {
echo "cURL error: ".curl_error($ch);
}
curl_close($ch);خيارات مهلة الانتظار
اضبط مهلة الاتصال ومهلة التنفيذ لمنع الطلبات من التعليق.
<?php
curl_setopt_array($ch, [
CURLOPT_CONNECTTIMEOUT => 5, // seconds to connect
CURLOPT_TIMEOUT => 15, // max total seconds
]);اتباع عمليات إعادة التوجيه
فعّل اتباع عمليات إعادة التوجيه تلقائيًا باستخدام CURLOPT_FOLLOWLOCATION.
<?php
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_MAXREDIRS, 5);التحقق من SSL
يتحقق cURL من شهادات SSL افتراضيًا. لا تعطّل التحقق في بيئة الإنتاج مطلقًا، واستخدم ذلك فقط أثناء التطوير المحلي مع الشهادات الموقّعة ذاتيًا.
<?php
// Development only — NEVER in production!
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt_array()
استخدم curl_setopt_array() لضبط عدة خيارات في استدعاء واحد، فهو أنظف من تكرار استدعاءات curl_setopt().
الملخص
cURL هو عميل HTTP القياسي في PHP. اضبط دائمًا CURLOPT_RETURNTRANSFER، وتحقّق من الأخطاء باستخدام curl_errno، وأغلق المقابض دائمًا باستخدام curl_close.
تحقّق سريع
أي خيار يلتقط استجابة cURL داخل متغير؟
الأسئلة الشائعة
هل درس «إجراء طلبات HTTP باستخدام cURL» مجاني؟
نعم — نص درس «إجراء طلبات HTTP باستخدام cURL» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة PHP Academy، انتقل إلى CoddyKit PRO. تتضمن دورة PHP Academy 4 دروس في المجموع.
ماذا ستتعلم في «إجراء طلبات HTTP باستخدام cURL»؟
استخدموا cURL لإجراء طلبات GET وPOST إلى واجهات API خارجية تتمرن على PHP Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ PHP Academy؟
لا تُشترط خبرة سابقة. PHP Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «إجراء طلبات HTTP باستخدام cURL»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس PHP Academy هذا؟
نعم. كل درس في PHP Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- ترميز JSON وفك ترميزه
- إجراء طلبات HTTP باستخدام cURL
- التعامل مع استجابات API وأخطائها
- إنشاء عميل API بسيط