آموزش کامل ارسال درخواست HTTP با cURL در PHP (مطابق استاندارد گوگل)
آشنایی با cURL در PHP
ابزار cURL (Client URL Library) یکی از قدرتمندترین کتابخانهها برای برقراری ارتباط با سرورهای دیگر و ارسال درخواستهای HTTP در زبان PHP است. با استفاده از cURL میتوانید به راحتی اطلاعات را به وبسایتها یا APIهای دیگر ارسال کرده یا از آنها داده دریافت کنید. گوگل همواره استفاده از روشهای استاندارد و امن را برای تعامل با سرویسهای خارجی توصیه میکند و cURL به دلیل انعطافپذیری بالا، بهترین گزینه برای این کار است.
مراحل چهارگانه ساخت یک درخواست cURL
به طور کلی، هر درخواست cURL در PHP از یک چرخه ۴ مرحلهای ساده پیروی میکند:
- راهاندازی (Initialize): ایجاد یک نمونه جدید با تابع
curl_init - تنظیمات (Set Options): پیکربندی گزینههای درخواست مانند URL، متد ارسال، هدرها و غیره با تابع
curl_setopt - اجرا (Execute): ارسال واقعی درخواست و دریافت پاسخ با تابع
curl_exec - بستن اتصال (Close): آزاد کردن منابع سیستم با تابع
curl_close
آموزش ارسال درخواست GET در PHP
درخواست GET معمولاً برای دریافت دادهها از یک سرور استفاده میشود. در مثال زیر، نحوه ارسال یک درخواست ساده GET به یک API فرضی را مشاهده میکنید:
$url = "https://api.example.com/users?limit=5";
// ۱. راهاندازی cURL
$ch = curl_init($url);
// ۲. تنظیم گزینهها
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // دریافت پاسخ به صورت رشته به جای چاپ مستقیم
curl_setopt($ch, CURLOPT_TIMEOUT, 10); // تعیین مهلت زمان پاسخدهی به ثانیه
// ۳. اجرای درخواست
$response = curl_exec($ch);
// مدیریت خطاها
if (curl_errno($ch)) {
$error_msg = curl_error($ch);
echo "خطا در برقراری ارتباط: " . $error_msg;
} else {
// پردازش پاسخ دریافت شده
echo "پاسخ سرور: " . $response;
}
// ۴. بستن اتصال
curl_close($ch);
آموزش ارسال درخواست POST با فرمت JSON
برای ارسال اطلاعات به سرور (مثلاً ثبت نام کاربر جدید یا ارسال یک فرم)، از متد POST استفاده میشود. امروزه اکثر APIها دادهها را در قالب JSON دریافت میکنند. در زیر نحوه ارسال درخواست POST به همراه هدرهای اختصاصی آورده شده است:
$url = "https://api.example.com/users";
// دادههایی که میخواهیم ارسال کنیم
$data = [
"name" => "علی رضایی",
"email" => "ali@example.com"
];
$jsonData = json_encode($data);
$ch = curl_init($url);
// تنظیمات متد POST و دادهها
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
// تنظیم هدرهای درخواست برای ارسال JSON
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Content-Type: application/json",
"Authorization: Bearer YOUR_API_TOKEN"
]);
$response = curl_exec($ch);
if (curl_errno($ch)) {
echo "خطای POST: " . curl_error($ch);
} else {
// بررسی وضعیت HTTP پاسخ (مثلا 200 یا 201)
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($httpCode === 201) {
echo "اطلاعات با موفقیت ثبت شد. پاسخ: " . $response;
} else {
echo "خطای سمت سرور با کد: " . $httpCode;
}
}
curl_close($ch);
استانداردهای طلایی گوگل در استفاده از cURL
برای اینکه کدهای شما بر اساس استانداردهای بینالمللی و توصیههای گوگل بهینهسازی شده باشند، نکات زیر را همواره رعایت کنید:
- همیشه Timeout تعیین کنید: از
CURLOPT_TIMEOUTاستفاده کنید تا در صورت کندی سرور مقصد، اسکریپت PHP شما متوقف نشود و منابع سرور هدر نرود. - اعتبارسنجی SSL را غیرفعال نکنید: هرگز مقدار
CURLOPT_SSL_VERIFYPEERرا برابر با false قرار ندهید. این کار امنیت ارتباط را به شدت کاهش میدهد و در کدهای نهایی غیر استاندارد است. - کدهای وضعیت HTTP را بررسی کنید: صرفاً دریافت پاسخ به معنای موفقیتآمیز بودن عملیات نیست. همیشه از تابع
curl_getinfo($ch, CURLINFO_HTTP_CODE)برای بررسی وضعیت سرور استفاده کنید.
پرسش و پاسخ
نظری یافت نشد
برای ارسال نظر ابتدا وارد شوید