使用PHP NuSOAP创建Web服务时遇到问题

时间:2014-11-04 22:59:12

标签: php web-services nusoap

我试图建立一个简单的网络服务,但我遇到了麻烦。该服务似乎可用,但我似乎无法回复。 $ client上的Var_dump显示与Web服务的连接,但没有任何回复。也没有错误。

非常感谢任何帮助。

server.php

<?php
require_once ("lib/nusoap.php");
$URL = "https://www.domain.com";
$namespace = $URL . '?wsdl';

$server = new soap_server;
$server->debug_flag = false;
$server->configureWSDL('Test', $namespace);
$server->wsdl->schemaTargetNamespace = $namespace;

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;
}

$server->register('get_message');

// create HTTP listener

$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
exit();
?>

client.php

<?php
$wsdl = "https://www.domain.com/webservice/server.php?wsdl";

require_once ('lib/nusoap.php');

$param = array("your_name" => "Liam");

$client = new SoapClient($wsdl, array("trace" => true));

$response = $client->get_message($param);

if($client->fault)
{
    echo "FAULT: <p>Code: (".$client->faultcode."</p>";
    echo "String: ".$client->faultstring;
}
else
{
    echo $response;
}
?>

1 个答案:

答案 0 :(得分:0)

客户端和服务器文件的代码中有错误,我已经更新了代码

server.php

<?php
require_once ("lib/nusoap.php");
$URL = "http://www.domian.com/server.php";
$namespace = $URL . '?wsdl';

$server = new soap_server(); //added ()
$server->debug_flag = false;
$server->configureWSDL('Test', $namespace);
//$server->wsdl->schemaTargetNamespace = $namespace;

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;
 }

$server->register('get_message',
                    array('request' => 'xsd:ArrayReq'), // ArrayReq is type for your parameters
                    array('return' => 'xsd:String'),
                    'urn:Test',
                    'urn:Test#get_message',
                    'rpc',
                    'encoded',
                    'show message'); // added request return array

// create HTTP listener

//$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service(file_get_contents('php://input'));
exit();
?>

Client.php

<?php
$wsdl = "http://www.domian.com/server.php?wsdl";

require_once ('lib/nusoap.php');

$param = array("your_name" => "Liam");
$client = new nusoap_client($wsdl); // user nusoap_client() for creating client object
//$client = new SoapClient($wsdl, array("trace" => true));

$response = $client->call('get_message', $param); // use call() to call the server functions

if($client->fault)
{
   echo "FAULT: <p>Code: (".$client->faultcode."</p>";
   echo "String: ".$client->faultstring;
}
else
{
  echo $response;
}
?>

它正在运作!

相关问题