Я пробовал сервер SOAP PHP с клиентом ajax и нашел рабочий код
Сначала загрузите библиотеку nusoap с Здесь
, затем создайте server.php
<?php
//call library
require_once ('lib/nusoap.php');
// Define the TriangleArea method as a PHP function
function TriangleArea($b, $h) { return 'The triangle area is: ' .(($b*$h)/2); }
// Define the RectangleArea method as a PHP function
function RectangleArea($L, $l) { return 'The rectangle area is: ' .($L*$l); }
// create the function
function get_message($your_name)
{
if(!$your_name){
return new soap_fault('Client','','Put Your Name!');
}
$result = "Welcome to ".$your_name .". Thanks for Your First Web Service Using PHP with SOAP";
return $result;
}
//using soap_server to create server object
$server = new soap_server;
// Initialize WSDL support
$server->configureWSDL('mathwsdl', 'urn:mathwsdl');
// Register the TriangleArea method
$server->register('TriangleArea', // method name
array('b' => 'xsd:int', 'h' => 'xsd:int'), // input parameters
array('area_t' => 'xsd:string'), // output parameters
'urn:mathwsdl', // namespace
'urn:mathwsdl#TriangleArea', // soapaction
'rpc', // style
'encoded', // use
'1=> : Calculate a triangle area as (b*h)/2' // documentation
);
// Register the RectangleArea method to expose
$server->register('RectangleArea', // method name
array('L' => 'xsd:int', 'l' => 'xsd:int'), // input parameters
array('area_r' => 'xsd:string'), // output parameters
'urn:mathwsdl', // namespace
'urn:RectangleAreawsdl#RectangleArea', // soapaction
'rpc', // style
'encoded', // use
'2=> : Calculate a rectangle area as (L*l)' // documentation
);
// Register the RectangleArea method to expose
$server->register('get_message', // method name
array('nm' => 'xsd:string'), // input parameters
array('area_r' => 'xsd:string'), // output parameters
'urn:mathwsdl', // namespace
'urn:get_messagewsdl#get_message', // soapaction
'rpc', // style
'encoded', // use
'3=> : Print a Message as name' // documentation
);
if ( !isset( $HTTP_RAW_POST_DATA ) ) $HTTP_RAW_POST_DATA =file_get_contents( 'php://input' );
$server->service($HTTP_RAW_POST_DATA);
// create HTTP listener
//$server->service($HTTP_RAW_POST_DATA);
exit();
?>
после этого создайте client.php
<code><?php
require_once ('lib/nusoap.php');
//Give it value at parameter
$param = array( 'your_name' => 'Monotosh Roy');
//Create object that referer a web services
$client = new soapclient('http://localhost:81/WebServiceSOAP/server.php?wsdl', true);
// Check for an error
$err = $client->getError();
if ($err) {
// Display the error
echo '<h2>Constructor error</h2><pre>' . $err . '
';// На данный момент вы знаете, что любые вызовы // методов этого веб-сервиса завершатся ошибкой} // Вызовите метод SOAP TriangleArea $ result = $ client-> call ('TriangleArea', array ('b' => 10, 'h '=> 15));// Проверка на наличие ошибки if ($ client-> fault) {echo '
Fault
';
print_r($result);
echo '
';} else {// Проверка на ошибки $ err = $ client-> getError ();if ($ err) {// Показать ошибку echo '
Error
' . $err . '
';} else {// Показать результат echo '
Result
';
print_r($result);
echo '
';}} // Вызвать метод SOAP RectangleArea $ result = $ client-> call ('RectangleArea', array ('L' => 40, 'l' => 20));// Проверка на наличие ошибки if ($ client-> fault) {echo '
Fault
';
print_r($result);
echo '
';} else {// Проверка на ошибки $ err = $ client-> getError ();if ($ err) {// Показать ошибку echo '
Error
' . $err . '
';} else {// Показать результат echo '
Result
';
print_r($result);
echo '
';}} // Показать запрос и ответ / * echo '
Request
';echo '
' . htmlspecialchars($client->request,
ENT_QUOTES) . '
';echo '
Response
';echo '
' . htmlspecialchars($client->response,
ENT_QUOTES) . '
'; * / // Вызов функции на сервере и отправка параметров тоже $ response = $ client-> call ('get_message', $ param);// Обработка результата if ($ client-> fault) {echo "
FAULT:
Код: (". $ Client-> faultcode. "
"; echo "String:". $client-> faultstring;} else {echo $ response;}?> Веб-сервис SOAP и AJAX