在过去的两天里,我一直无助地尝试使用NuSoap在PHP中创建一个Web服务。但是,在无休止地筛选各种教程和指南之后,我仍然坚持使用 10行拒绝工作的代码。
服务器:
// 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);
给我一个布尔(假)
我哪里错了???
答案 0 :(得分:1)
当您注册方法时,您调用参数'params'而不是'name',代码应为:
$server->register('hello',
array("name"=>"xsd:string"),
array("result"=>"xsd:string"),
'http://mysite.com'
);
你应该不会变得虚假,当我运行带有bug的代码时,我仍然有
string(12) "Hello, "
(空$ name变量)。转到http://localhost/nusoap/server.php?wsdl并确保您可以从正在执行客户端的同一台计算机上查看WSDL。