Клиент nusoap не отвечает

Я пытаюсь написать простой сервер и клиент веб-службы, используя nusoap. Я думаю, что мой сервер работает нормально, потому что его может вызвать клиент VB.NET. Однако PHP-клиент очень долго загружается и не выдает никаких результатов.

server1.php

<?
require_once("nusoap/lib/nusoap.php");

$ns="localhost/";

$server = new soap_server();
$server->configureWSDL('TaxCalculator', $ns);
$server->wsdl->schemaTargetNamespace = $ns;
$server->register('TaxCalc', array('amount'=>'xsd:string'),array('return'=>'xsd:string'),$ns);

function TaxCalc($amount) {
  $tax = $amount * 0.5;
  return new soapval('return', 'xsd:string', $tax);
}

$server->service($HTTP_RAW_POST_DATA);
?>

client1.php

<? 
require_once('nusoap/lib/nusoap.php');

$client=new soapclient('http://localhost/server1.php?wsdl', 'wsdl');
echo $client->call('TaxCalc', array('amount'=>'15.00'));
?>

Я использую PHP версии 5.2.6 и nusoap версии 0.9.5.

1 ответ

Я бы сказал, использовать все, что работает.

Я использовал nusoap.php,v 1.114, и он работает для меня.

У меня nuspoap_client вызов отличается от того, что у вас есть выше. У вас нет параметра для того, какой порт использовать.

$client = new nusoap_client("http://127.0.0.1:1024/soap/IApp", false,
$proxyhost, $proxyport, $proxyusername, $proxypassword);

Второй параметр выше говорит не использовать файл wsdl. Я предполагаю, что, возможно, ваш VB-клиент использует тот же подход.

Ваш код выглядит так, как будто он хочет использовать локальный файл wsdl.

В качестве альтернативы может возникнуть проблема с разрешениями, когда VB разрешен доступ к мыльному порту, а PHP - нет. (сомневаюсь, так как все локально)

Другие вопросы по тегам