نیما حبیب خدا

آموزش نوشتن وب سرویس در php

11 پست در این موضوع

خیلی سریع و بی مقدمه میرم سراغ آموزش

وب سرویس یک پل ارتباطی میان سرور و برنامه نوشته شده شما ، با سرور مشتری یا کاربر یا بهتر بگم ، کلاینت هست

این سوییچ اصولا با کلاس soap و فایل nusoap انجام میشه .

من در قالب دو فایل server.php و client.php این آموزش را تمام میکنم .

ابتدا از لینک زیر فایل nusoap را دانلود کنید : NuSOAP - SOAP Toolkit for PHP | SourceForge.net

داخل روت سرور پوشه با اسم WebService بسازید.

پوشه lib را از فایل دانلود شده داخل پوشه ایجاد شده کپی کنید

server.php:


<?php
//call library 
require_once ('lib/nusoap.php'); 
//using soap_server to create server object 
$server = new soap_server; 

//register a function that works on server 
$server->register('message'); 

// create the function 
function message($your_name) 
{ 
if(!$your_name){ 
return new soap_fault('Client','','Esme khod ra benevisid!'); 
} 
$result = "Esme Shoma:".$your_name; 
return $result; 
} 
// create HTTP listener 
$server->service($HTTP_RAW_POST_DATA); 
exit(); 
?>  



کد بالا را به اسم server.php در پوشه مربوط ذخیره کنید

لینک زیر را اجرا کنید:

404 Not Found.

client.php :


<?php 
require_once ('lib/nusoap.php'); 
//Give it value at parameter 
$param = array( 'your_name' => 'Nima Habibkhoda'); 
//Create object that referer a web services 
$client = new soapclient('http://localhost/WebService/server.php'); 
//Call a function at server and send parameters too 
$response = $client->call('message',$param); 
//Process result 
if($client->fault) 
{ 
echo "FAULT: <p>Code: (".$client->faultcode."</p>"; 
echo "String: ".$client->faultstring; 
} 
else 
{ 
echo $response; 
} 
?> 


کد بالا را به اسم client.php در پوشه مربوطه ذخیره کنید

لینک زیر را اجرا کنید :

404 Not Found.

امیدوارم این آموزش کارآمد باشه .

بدرود

Share this post


Link to post
Share on other sites

با سلام

کد بالا موقع اجرا خطا میده و کد صفحه php رو نمایش میده

آیا تنظیم خاصی قبل از اجرا باید انجام داد؟

Share this post


Link to post
Share on other sites

البته منظورم اینه

Deprecated: Assigning the return value of new by reference is deprecated in C:\wamp\www\WebService\lib\nusoap.php on line 7384

Share this post


Link to post
Share on other sites

من دقیقا کد شما رو روی local در دو فایل و یک پوشه (lib) پیاده کردم.

لطفا برای اجرا راهنمایی بفرمایید

Share this post


Link to post
Share on other sites

من دقیقا کد شما رو روی local در دو فایل و یک پوشه (lib) پیاده کردم.

لطفا برای اجرا راهنمایی بفرمایید

Share this post


Link to post
Share on other sites

شما باید فایل client.php رو اجرا کند . سه فایلی که نوشتم را بنویسید و فایل client.php را اجرا کنید . در واقع این فایل ، همون فایلیست که باید کاربر های شما از وب سرویس استفاده کنند . client به server وصل میشود و دستورات مرتبط server را اجرا میکند

Share this post


Link to post
Share on other sites

client.php

server.php

nusoap.php

منظورتونه دیگه؟

اونها رو به همون صورتی که گفتید توی پوشه wwwroot قرار دادم توی یک پوشه به نام webservice و فراخوانی رو هم با client انجام می دم. ولی همچنان این پیغام خطا ظاهر می شه.

Share this post


Link to post
Share on other sites

باید فایل soap که برای دانلود گذاشتم رو کار کنید .

اگر برطرف نشد ، فایل رو زیپ کنید و در آپلودر انجمن آپلود کنید و لینک رو بدید بررسی کنم

Share this post


Link to post
Share on other sites

ممنون بله با soap شما مشکل حل شد

حالا اگه بخوایم از یک wsdl هم استفاده کنیم چطوری میشه برنامه ها رو تغییر داد؟

Share this post


Link to post
Share on other sites

باید نحوه کار با wsdl رو یاد بگیرید ./ یک کلاس هست برای wsdl . باید xml و wsdl رو یاد بگیرید / داخل همین soap برای wsdl کلاس قرار گرفته

Share this post


Link to post
Share on other sites

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری