Проблемы с созданием веб-сервиса с помощью PHP NuSOAP

Я пытаюсь настроить простой веб-сервис, но у меня проблемы. Служба кажется доступной, но я не могу ответить. Var_dump на $ client показывает соединение с веб-службой, но ничего не возвращается в ответ. Никаких ошибок не обнаружено.

Любая помощь будет принята с благодарностью.

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

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

работает!

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]