2013-08-14 3 views
3

Я пытаюсь вызвать веб-сервиса, который я создал, но сервер возвращает следующее сообщение об ошибке:NuSOAP SoapClient вызов становится «Преждевременный конец данных в тег HTML» ошибки

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from ' http://www.savepoints.com.br/server.php?WSDL ' : Premature end of data in tag html line 2 in /home/storage/a/39/1c/site1365816459/public_html/cliente.php:5 Stack trace: #0 /home/storage/a/39/1c/site1365816459/public_html/cliente.php(5): SoapClient->SoapClient(' http://www.save ...') #1 {main} thrown in /home/storage/a/39/1c/site1365816459/public_html/cliente.php on line 5

Здесь я показываю мои два сценария:

server.php (это WSDL-сервер)

<?php 

require('classes/nusoap/nusoap.php'); 

$server = new soap_server(); 

$server->configureWSDL('stockserver', 'urn:stockquote'); 

$server->register('getStockQuote', 
    array('symbol' => 'xsd:string'), 
    array('return' => 'xsd:decimal'), 
    'urn:stockquote', 
    'urn:stockquote#getStockQuote'); 

$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; 

$server->service($HTTP_RAW_POST_DATA); 

?> 

cliente.php

<?php 

require('classes/nusoap/nusoap.php'); 

$c = new SoapClient('http://www.savepoints.com.br/server.php?WSDL'); 

$stockprice = $c->call('getStockQuote',array('symbol' => 'ABC')); 

echo "The stock price for 'ABC' is ".$stockprice."."; 

?> 

ответ

7

С сервера NuSOAP и клиента PHP-SOAP.

Использование:

$c = new SoapClient('http://www.savepoints.com.br/server.php?wsdl'); 

Вместо:

$c = new SoapClient('http://www.savepoints.com.br/server.php?WSDL'); 

Я не знаю, почему, но это работает для меня.