• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل وب سرویس
#1
سلام
میخوام یه وب سرویس بنویسم که به مشکل برخوردم .

کدهام :

server.php

کد پی‌اچ‌پی:
<?php
//call library 
require_once ('lib/nusoap.php'); 

$URL       "www.test.com";
$namespace $URL '?wsdl';

$server = new soap_server
$server->configureWSDL('getmessagetesting'$namespace);
$server->register('get_message'); 

function 
get_message() 

    if(!
$your_name){ 
        return new 
soap_fault('Client','','Put Your Name!'); 
    } 
    
$result "Welcome to Thanks for Your First Web Service Using PHP with SOAP"
    return 
$result


$server->service('php://input'); 
exit(); 
?>

client.php

کد پی‌اچ‌پی:
<?php 
require_once ('lib/nusoap.php');
$param = array( 'your_name' => 'Monotosh Roy'); 

$client = new nusoap_client('http://127.0.0.1/WebServiceSOAP/server.php?wsdl');
$response $client->call('get_message'); 

if(
$client->fault

    echo 
"FAULT: <p>Code: (".$client->faultcode."</p>"
    echo 
"String: ".$client->faultstring

else 

    echo 
$response

?>

ارروری که دارم !!!

نقل قول:FAULT:

Code: (SOAP-ENV:Client
String: error in msg parsing: XML error parsing SOAP payload on line 1: Not well-formed (invalid token)
  پاسخ
تشکر شده توسط :
#2
چاکر داش حمید
بیا اینم یه وبسرویس با سه تا متد مختلف برات نوشتم جیگرت حال بیاد . Big Grin
server.php
کد پی‌اچ‌پی:
<?php

include 'nusoap_client.php';


//func1
function reza($name='name',$email='email',$phone='phone')
{
    return 
"myname is $name and email is $email and phone $phone";
}

//func2
function get_message($number=10)
{
    return 
"You get  $number";
}

//func3
function get_message2()
{
    return 
time();
}



$namespace 'http://example.org';
$server = new nusoap_server();
$server->soap_defencoding 'UTF-8';

$server->configureWSDL('hamid_webservice');
$server->wsdl->schemaTargetNamespace $namespace;
 
//func1
$server->register('reza',
        array(
'name' => 'xsd:string''email' => 'xsd:string','phone' => 'xsd:integer'),
        array(
'return' => 'xsd:string'),'http://soapinterop.org');  
        
//func2
$server->register('get_message',
        array(
'number' => 'xsd:integer'),
        array(
'return' => 'xsd:string'),'http://soapinterop.org'); 
//func3

$server->register('get_message2',
        array(),
        array(
'return' => 'xsd:string'),'http://soapinterop.org');         


        
        
$POST_DATA = isset($GLOBALS['HTTP_RAW_POST_DATA'])
                ? 
$GLOBALS['HTTP_RAW_POST_DATA'] : '';
                  
$server->service($POST_DATA);            
exit(); 

اینم client.php
کد پی‌اچ‌پی:
<?php
include 'nusoap_client.php';

$client = new nusoap_client('http://localhost/a_test/hamid/server.php?wsdl');
$err $client->getError();
if(
$err)
{
    
print_r($err);
    die;
}


//func1

echo $client->call('reza',array('reza','info@rezaonline.net','9360')); //myname is reza and email is info@rezaonline.net and phone 9360


echo '<hr>';

echo 
$client->call('get_message',array(25)); //You get 25


echo '<hr>';

 echo 
$client->call('get_message2');//1416767795 

اینم کدها
http://up.vbiran.ir/uploads/194551416768..._hamid.rar

نگران هیچی نشی یه وقت تا منو داری Heart
  پاسخ
تشکر شده توسط : Hamid payam RaminMT
#3
زضا دوست دارم .
و متقابلا از soap و داکیومنت ها متنفرم که دیروز بیچارم کردن Big Grin
  پاسخ
تشکر شده توسط :
#4
(۱۳۹۳ آذر ۰۳, ۱۲:۰۸ ق.ظ)Reza نوشته: چاکر داش حمید
بیا اینم یه وبسرویس با سه تا متد مختلف برات نوشتم جیگرت حال بیاد . Big Grin
server.php
کد پی‌اچ‌پی:
<?php

include 'nusoap_client.php';


//func1
function reza($name='name',$email='email',$phone='phone')
{
    return 
"myname is $name and email is $email and phone $phone";
}

//func2
function get_message($number=10)
{
    return 
"You get  $number";
}

//func3
function get_message2()
{
    return 
time();
}



$namespace 'http://example.org';
$server = new nusoap_server();
$server->soap_defencoding 'UTF-8';

$server->configureWSDL('hamid_webservice');
$server->wsdl->schemaTargetNamespace $namespace;
 
//func1
$server->register('reza',
        array(
'name' => 'xsd:string''email' => 'xsd:string','phone' => 'xsd:integer'),
        array(
'return' => 'xsd:string'),'http://soapinterop.org');  
        
//func2
$server->register('get_message',
        array(
'number' => 'xsd:integer'),
        array(
'return' => 'xsd:string'),'http://soapinterop.org'); 
//func3

$server->register('get_message2',
        array(),
        array(
'return' => 'xsd:string'),'http://soapinterop.org');         


        
        
$POST_DATA = isset($GLOBALS['HTTP_RAW_POST_DATA'])
                ? 
$GLOBALS['HTTP_RAW_POST_DATA'] : '';
                  
$server->service($POST_DATA);            
exit(); 

اینم client.php
کد پی‌اچ‌پی:
<?php
include 'nusoap_client.php';

$client = new nusoap_client('http://localhost/a_test/hamid/server.php?wsdl');
$err $client->getError();
if(
$err)
{
    
print_r($err);
    die;
}


//func1

echo $client->call('reza',array('reza','info@rezaonline.net','9360')); //myname is reza and email is info@rezaonline.net and phone 9360


echo '<hr>';

echo 
$client->call('get_message',array(25)); //You get 25


echo '<hr>';

 echo 
$client->call('get_message2');//1416767795 

اینم کدها
http://up.vbiran.ir/uploads/194551416768..._hamid.rar

نگران هیچی نشی یه وقت تا منو داری Heart

سلام بزروار واقعا از شما ممونمبابت کد وب سرویستون حالا یک سوال:
اگر خروجی ما ارایه باشه باید چیگار کنیم من تست کردم جواب نداد
ممنون میشم راهنماییم کنید
  پاسخ
تشکر شده توسط :
#5
nusoap خروجی آرایه نمیده
شما به فرم json تبدیلش کنید وبصورت رشته برش گردونید .

در کل دیگه soap منسوخ شده ، سعی کنید restful بنویسید با خروجی نوع json و xml بصورت آپشنال
  پاسخ
تشکر شده توسط :
#6
(۱۳۹۵ فروردین ۰۶, ۱۱:۱۳ ب.ظ)Reza نوشته: nusoap خروجی آرایه نمیده
شما به فرم json تبدیلش کنید وبصورت رشته برش گردونید .

در کل دیگه soap منسوخ شده ، سعی کنید restful بنویسید با خروجی نوع json و xml بصورت آپشنال

سلام می تونید برای restfulهم یک مثال روان که اینحا گزاشتید بزارید تشکر
راستی من قسمت wsdlرو تو مودتون حڌف کردم آرایه ارسال شد این بعدا مسکل ساز میشه؟
  پاسخ
تشکر شده توسط :
#7
با nusoap که وصل بشید آرایه رو نمیتونید بگیرید نمیدونم چرا

Sleepy
  پاسخ
تشکر شده توسط :
#8
(۱۳۹۵ فروردین ۰۸, ۱۲:۳۳ ق.ظ)Reza نوشته: با nusoap که وصل بشید آرایه رو نمیتونید بگیرید نمیدونم چرا

Sleepy

ولی من الان تو فایلی که براتون میزام تونستم ارا رو در قسمت client بگیرم
server.php
کد پی‌اچ‌پی:
<?php
 
require_once('lib/nusoap.php');
//require("Connection.class.php"); 
$server = new nusoap_server;
//$server ->configureWSDL('server', 'urn:server');
//$server ->wsdl->schemaTargetNamespace = 'urn:server';
//$server ->register('pollServer', array('value' => 'xsd:string'), array('return' => 'xsd:string'), 'urn:server', 'urn:server#pollServer');

//register a function that works on server
$server ->register('getfeedDetails', array('value' => 'xsd:string'), array('return' => 'xsd:string'), 'urn:server''urn:server# getfeedDetails');




// create the function to fetch Data’s from Database
function getfeedDetails ()
{
              
$conn mysql_connect('localhost','root','');
                
mysql_select_db('webservice'$conn);
                
$sql "SELECT * FROM book";
                
$q mysql_query($sql);
                       
$items = array();
                while(
$row mysql_fetch_array($q)){

                                
$items [] = array(
                                                        
'story_url'=>$row['cd'],
                                                        
'story_title'=>$row['title'],
                                                        
'story_description'=>$row['author'],
                                                        
'story_image'=>$row['publisher']
                                    );
                }
                      return 
$items;

}

$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA '';
$server ->service($HTTP_RAW_POST_DATA);
?>
client.php
کد پی‌اچ‌پی:
<?php
require_once('lib/nusoap.php');
$url "http://localhost/a/webservise/server.php";
$client = new nusoap_client($url);
//Call server function
$response $client ->call('getfeedDetails');

if(
$client->fault)
{
                echo 
"FAULT: <p>Code: (".$client ->faultcode.")</p>";
                echo 
"String: ".$client->faultstring;
}
else
{
                
$result $response;
                
$count count($result);
?>
    <table >
    <tr>
                <th>Story Url</th>
                <th>Story Title</th>
                <th>Story Description</th>
                <th>Story Image</th>
    </tr>
    <?php
print_r
($result);
    for(
$i 0;$i $count;$i++) {
                  
$rowtype = ($i 2) ? "style='background:#88DAEB'""style=background:#FFF";
                  echo 
$i;
        
?>
    <tr <?php echo $rowtype?>>
                <td><?php echo $result[$i]['story_url']?></td>
                <td><?php echo $result[$i]['story_title']?></td>
                <td><?php echo $result[$i]['story_description']?></td>
                <td><?php echo $result[$i]['story_image']?></td>
    </tr>
    <?php
                
}
                
?>
    </table>
    <?php
}
 
?>
<style type="text/css">
    th {
        background:#007F99;
        color:#fff;
    }
</style> 
من کد
کد پی‌اچ‌پی:
$server->configureWSDL('shekofteh_webservice'); 
رو حذف کردم حواب داد.
حالا میخوام بدونم با حذف این خط بعد ها به مشکل بر میخورم

(۱۳۹۵ فروردین ۰۷, ۰۹:۲۶ ب.ظ)ars31277 نوشته:
(۱۳۹۵ فروردین ۰۶, ۱۱:۱۳ ب.ظ)Reza نوشته: nusoap خروجی آرایه نمیده
شما به فرم json تبدیلش کنید وبصورت رشته برش گردونید .

در کل دیگه soap منسوخ شده ، سعی کنید restful بنویسید با خروجی نوع json و xml بصورت آپشنال

سلام می تونید برای restfulهم یک مثال روان که اینحا گزاشتید بزارید تشکر
راستی من قسمت wsdlرو تو مودتون حڌف کردم آرایه ارسال شد این بعدا مسکل ساز میشه؟

در مورد rest ful من چند تا مثال خوب دیدم که میزام اینجا دوستان هم استفاده کنند فقط من یک مشکلی دارم
اینه که برای وب سرویس restful قسمت کلاینت چظوری باید باشه یعنی کاربر چطوری به وب سرویس من با چه دستوراتی باید وصل شه؟


فایل‌های پیوست
.zip   restexample.zip (اندازه 3.1 KB / تعداد دانلود: 39)
  پاسخ
تشکر شده توسط :
#9
نقل قول: اینه که برای وب سرویس restful قسمت کلاینت چظوری باید باشه یعنی کاربر چطوری به وب سرویس من با چه دستوراتی باید وصل شه؟
خب اینکه کاربر چه پارامترهایی رو بفرسته ترکیبی کلید و مقدار هست که بصورت GET یا POST شده میتونه بفرسته به یک url

و url شما باید/بهتر است بصورت زیر باشد

example.ir/api/method

که method اسم متد است که کاربر ست میکند مثلا همین getfeedDetails
  پاسخ
تشکر شده توسط :
#10
(۱۳۹۵ فروردین ۰۸, ۰۳:۲۷ ق.ظ)Reza نوشته:
نقل قول: اینه که برای وب سرویس restful قسمت کلاینت چظوری باید باشه یعنی کاربر چطوری به وب سرویس من با چه دستوراتی باید وصل شه؟
خب اینکه کاربر چه پارامترهایی رو بفرسته ترکیبی کلید و مقدار هست که بصورت GET یا POST شده میتونه بفرسته به یک url

و url شما باید/بهتر است بصورت زیر باشد

example.ir/api/method

که method اسم متد است که کاربر ست میکند مثلا همین getfeedDetails
منظورتون رو متوجه نشدم کاربر باید با دستوری مثل curl اطلاعات رو بفرسته سمت سرور من
یا بصورت دستی url مورد نظر رو تو مرورگر تایپ کنه؟
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان