Привет, я использую этот код для nusoap-сервера, но когда я вызываю сервер в веб-браузере, он показывает сообщение «Эта услуга не содержит описания в Интернете» Вот код
<? //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('hello'); // create the function function hello($name) { if(!$name){ return new soap_fault('Client','','Put your name!'); } $result = "Hello, ".$name; return $result; } // create HTTP listener $server->service($HTTP_RAW_POST_DATA); exit(); ?>
Помощь …
Пожалуйста, измените свой код,
<?php //call library require_once('nusoap.php'); $URL = "www.test.com"; $namespace = $URL . '?wsdl'; //using soap_server to create server object $server = new soap_server; $server->configureWSDL('hellotesting', $namespace); //register a function that works on server $server->register('hello'); // create the function function hello($name) { if (!$name) { return new soap_fault('Client', '', 'Put your name!'); } $result = "Hello, " . $name; return $result; } // create HTTP listener $server->service($HTTP_RAW_POST_DATA); exit(); ?>
Вы не определили пространство имен.
Пожалуйста, смотрите простой пример:
http://patelmilap.wordpress.com/2011/09/01/soap-simple-object-access-protocol/
Веб-браузер не вызывает веб-службу – вы можете создать клиент PHP:
// Pull in the NuSOAP code require_once('lib/nusoap.php'); // Create the client instance $client = new soapclient('your server url'); // Call the SOAP method $result = $client->call('hello', array('name' => 'StackOverFlow')); // Display the result print_r($result);
Это должно отображать Hello, StackOverFlow
Обновить
Чтобы создать WSDL, вам необходимо добавить следующее:
$server->configureWSDL(<webservicename>, <namespace>);
Вы также можете использовать nusoap_client
<?php // Pull in the NuSOAP code require_once('lib/nusoap.php'); // Create the client instance $client = new nusoap_client('your server url'); // using nosoap_client // Call the SOAP method $result = $client->call('hello', array('name' => 'Pingu')); // Display the result print_r($result) ?>