我正在使用NuSOAP库开发PhP Web服务,但面临错误。我无法理解错误。如果有人知道解决方案,请帮忙。以下是我的代码。
------ server.php ------
<?php
// Pull in the NuSOAP code
require_once('lib/nusoap.php');
// Create the server instance
$server = new soap_server;
// Register the method to expose
$server->register('hello');
// 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);
?>
------ client.php ------
<?php
// Pull in the NuSOAP code
require_once('lib/nusoap.php');
// Create the client instance
$client = new nusoap_client('server.php');
// Check for an error
$err = $client->getError();
if ($err)
{
// Display the error
echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
// At this point, you know the call that follows will fail
}
// Call the SOAP method
$result = $client->call('hello', array('name' => 'Scott'));
// Check for a fault
if ($client->fault)
{
echo '<h2>Fault</h2><pre>';
print_r($result);
echo '</pre>';
}
else
{
// Check for errors
$err = $client->getError();
if ($err)
{
// Display the error
echo '<h2>Error</h2><pre>' . $err . '</pre>';
}
else
{
// Display the result
echo '<h2>Result</h2><pre>';
print_r($result);
echo '</pre>';
}
}
?>
当我运行客户端时,出现以下错误。
Error
no transport found, or selected transport is not yet supported!
答案 0 :(得分:0)
实例化nusoap_client时:
new nusoap_client('server.php');
您的构造函数参数'server.php'
对我来说看起来不合适。它应该是一个有效的终点:
所以,无论你的'server.php'到底在哪里。也许如果它在运行client.php的同一台机器上,它可能类似于:http://127.0.0.1/app/server.php
答案 1 :(得分:0)
我认为您应该更准确地阅读NuSoap文档。我在你的代码中发现了一些错误:
数组将传递给您的方法,并且您已将字符串参数$ name用于hello方法。
$name['name']; //is correct!
客户端应该调用某些实例或网址,而不是HDD网址(server.php)。
new nusoap_client(SOME_IP_OR_HOSTNAME . '/server.php'); //is correct!
require_once 'server.php';
new nusoap_client($server); //is correct!
new nusoap_client(WSDL_INSTANCE_OBJECT); //is correct!
new nusoap_client('server.php'); //is incorrect!
了解更多信息,请阅读NuSoap文档。