پروتکل SOAP در php(نحوه ارسال و درخواست در این پروتکل)

۵ سال پیش(به روز شده در ۵ سال پیش) پی اچ پی(PHP)(کلاس) ۲

"با استفاده از پروتکل دسترسی آسان به اشیاء یا سُوپ (Simple Object Access Protocol - SOAP) می‌توان به ارسال و تبادل پیامهایی از جنس اکس‌ام‌ال بر روی شبکه‌های رایانه‌ای مبادرت کرد". اطلاعات بیشتر در ویکی‌پدیا

ما قصد توضیح در مورد پروتکل SOAP را نداشته بلکه هدف این است تا با نحوه استفاده از کلاس معروف nusoap.php که در حیطه این پروتکل نوشته شده را مثال بزنیم. در مثال زیر در سریعترین حالت ممکن به نحوه استفاده از این پروتکل پر کاربرد پی خواهید برد.

سمت سرور

در سمت سرور نیاز است تا دستورات لازم جهت پاسخگویی به کلاینت ها یا مشتریها را مشخص کنیم یعنی مثلا تابعی بنویسیم که با توجه به درخواست کاربر از سمت مشتری یا کلاینت , پاسخ مورد نظر را ارسال نماید. در مثال ما کاربر نام و نام خانوادگی را ارسال کرده و سرور پیغام خوش آمدگویی ارسال می کند.

require_once "nusoap.php";
 
function welcome($name, $family)
{
    return "$name $family";
}
 
$server = new soap_server();
$server->register("getProd");
$server->register("welcome");
$server->service($HTTP_RAW_POST_DATA);

در کد بالا ابتدا کلاس را فراخوانی نموده ایم. سپس تابع welcome نام و نام خانوادگی را گرفته و در نهایت پیغام خوش آمدگویی را باز می گرداند. روالهای آخر کد مربوط به ایجاد کلاس , معرفی تابع به پروتکل و نحوه ارسال اطلاعات می باشند.

کلاینت یا مشتری

در سمت مشتری نیاز است تا کلاس فراخوانی گردد. سپس با توجه به خدماتی که سرور انجام می دهد درخواست خود را ارسال می نماییم. در اینجا خدمات سرور فقط خوش آمدگویی است! به کد زیر دقت کنید:  

require_once "nusoap.php";
 
$client = new nusoap_client('http://127.0.0.1/SOAP/server.php');
 
if ($client->fault) {
    echo '<h2>Fault</h2>';
    print_r($result);
} else {
    $result = $client->call('welcome', array('Mehrdad', 'Shoja'));
    $error = $client->getError();
    if ($error) {
        echo '<h2>Error</h2>' . $error;
    } else {
        echo "<h2>$result</h2>";
    }
}

ابتدا کلاس فراخوانی شده سپس چک می شود که در اتصال به سرور خطایی رخ داده یا خیر(fault). اگر خطایی رخ داده پیغام مورد نظر نمایش داده می شود و در غیر اینصورت نوع درخواست(تابعی که در سمت سرور معرفی نموده ایم) و مقادیر ورودی که نام و نام خانوادگی است ارسال می کنیم که در صورت نبود خطا از سمت سرور(getError) نتیجه مورد دلخواه به نمایش در می آید.

* تمامی کدهای بالا به همراه کلاس nusoap.php را می توانید در بخش آخر مطلب دانلود نمایید.

فایلهای پیوست شده

  • دانلود  ۵۴.۸۳ کیلو بایت (nusoap.php.rar) - کلاس nusoap.php به همراه مثال در نحوه ارسال و دریافت در پروتکل SOAP به کمک این کلاس
  • صفحات پیشنهادی

    ذخیره کردن متغیرهای کلاس به فرمت متن(گسترش توابع unserialize و serialize)...

    کلاس پایه ای که قصد معرفی داریم بر پایه دو تابع unserialize و serialize توسعه یافته شده است. همانطور که می دانید وظایف این توابع تبدیل متغیرها به فرمت متن جهت ذخیره سازی آنها است تا بتوان در زمان مناس...

    کلاس PHP User Agent...

    همانطور که از نام کلاس پیداست جهت دریافت اطلاعات کاربر وارد شده به سایت این کلاس بکار می آید و اطلاعاتی نظیر مرورگر ، سیستم عامل ، آی پی ، و ... را قادر به بررسی است......

    کلاس UUID برای PHP...

    UUID یا Universally Unique Identifier شناسه استاندارد استفاده شده در ساخت نرم افزار هاست که توسط Open Source Foundation استاندارد سازی شده است......

    کلاس MySQL برای PHP جهت اتصال به پایگاه داده...

    کلاس ساده زیر توسط ما طراحی شده که البته از PDO استفاده نشده است اما براحتی قابل ویرایش است. در ضمن کلاس زیر کاملا تست شده و آماده بکار است......

    2 نظر

    gravatar  محمدی
    ۴ سال پیش - بررسی شده - نوشته شده توسط مهمان

    با سلام و عرض ادب
    من واقعاً حوصله نظر دادن تو هیچ سایتی رو ندارم ، ولی به خاطر زحمت بی منتی که شما کشیدید و این مطالب مفید رو برای عموم جویندگان دانش قرار دادید ، منم خودم رو مجاب کردم که به وسیله این نظر تشکر و قدردانی صمیمانه خودم رو ابراز کنم .
    موفق و پیروز باشید

    admin
    ۴ سال پیش - نوشته شده توسط مدیر

    سلام. نظر لطف شماست.
    پیروز باشید.

    captcha image reload