2010-04-20 4 views
1

Я беспомощно пытался создать веб-сервис на PHP с использованием NuSoap в течение последних 2 дней. Однако, после бесконечного просеивания через различные руководства и руководства, я все еще придерживаюсь 10 строк кода, которые отказываются работать.Помощь с NuSoap - Создание веб-сервиса

Сервер:

// Pull in the NuSOAP code 
require_once('./lib/nusoap.php'); 

// Create the server instance 
$server = new soap_server; 

// Initialize WSDL support 
$server->configureWSDL('hellowsdl','http://mysite.com'); 

// Register the method to expose 
$server->register('hello', 
    array("params"=>"xsd:string"), 
    array("result"=>"xsd:string"), 
    'http://mysite.com' 
); 

// Define the method as a PHP function 
function hello($name) { 
     return 'Hello, ' . $name; 
} 

// Use the request to (try to) invoke the service 
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; 
$server->service($HTTP_RAW_POST_DATA); 

И Клиент:

// Pull in the NuSOAP code 
require_once('./lib/nusoap.php'); 

// Create the client instance 
$client = new nusoap_client('http://localhost/nusoap/server.php?wsdl',true); 

// Call the SOAP method 
$result = $client->call('hello',array("name"=>"Scott")); 

var_dump($result); 

дает мне логическое значение (ложь)

Где я буду неправильно ???

ответ

1

При регистрации метода, вы звоните не «имя» параметр «Params», код должен быть:

$server->register('hello', 
array("name"=>"xsd:string"), 
array("result"=>"xsd:string"), 
'http://mysite.com' 
); 

Вы не должны получать ложные, хотя, когда я запускал код ошибка в нем я все еще получил

string(12) "Hello, " 

(пустая переменная $ name). Перейдите к http://localhost/nusoap/server.php?wsdl и убедитесь, что вы видите WSDL с того же компьютера, на котором выполняется клиент.