Ошибка при возвращении Web Service NuSOAP
Я занимаюсь разработкой веб-службы с NuSOAP в Laravel 4.
класс, который я использую https://github.com/noiselabs/NoiselabsNuSOAPBundle
Server
Route::any('ws/server', function()
{
$server = new \soap_server;
$server->configureWSDL('server.hello','urn:server.hello', Request::url());
$server->wsdl->schemaTargetNamespace = 'urn:server.hello';
$server->register('hello',
array('name' => 'xsd:string'),
array('return' => 'xsd:string'),
'urn:server.hello',
'urn:server.hello#hello',
'rpc',
'encoded',
'Retorna o nome'
);
function hello($name)
{
return 'Hello '.$name;
}
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
return Response::make($server->service($HTTP_RAW_POST_DATA), 200, array('Content-Type' => 'text/xml; charset=ISO-8859-1'));
});
Клиент
Route::get('ws/client/hello', function()
{
$client = new \nusoap_client('http://localhost/teste_laravel/public/ws/server?wsdl', true);
$err = $client->getError();
if ($err)
{
echo "Erro no construtor<pre>".$err."</pre>";
}
$result = $client->call('hello',array('Renato'));
if ($client->fault)
{
echo "Falha<pre>".print_r($result)."</pre>";
}
else
{
$err = $client->getError();
if ($err)
{
echo "Erro<pre>".print_r($err)."</pre>";
}
else
{
print_r($result);
}
}
});
возврата можешь приносить эту ошибку.
Array ( [faultcode] => SOAP-ENV:Client [faultactor] => [faultstring] => error in msg parsing: xml was empty, didn't parse! [detail] => ) Falha 1
Когда я делаю сервер с чистым PHP, а клиент с Laravel от прав.
2 answers
И я Решил это таким образом.
$rawPostData = file_get_contents("php://input");
return Response::make($server->service($rawPostData), 200, array('Content-Type' => 'text/xml; charset=ISO-8859-1'));
Https://stackoverflow.com/questions/21685157/web-service-nusoap-laravel-4/21685649
Http://sourceforge.net/projects/nusoap/files/nusoap/
(Last Update: 2011-01-13
И Это не реагирует именно ваш вопрос, однако, будет решать свою ошибку. В прошлом, когда мне приходилось работать с RESTService в PHP, я использовал Nusoap, потому что он был лучше документировано и много ссылок citavam он. Но то, что я только что осознав на практике, что он уже был очень полезным в древние времена, но PHP развивалась и другие библиотеки, развивались более быстрый.
В Nusoap-это, в основном, проект, который остановился на время. Он уже был хорош, однако , если столкнулись с ошибкой, он, вы не получите шанс решить иначе не в состоянии использовать его или сделать в PHP чистого. Настоятельно рекомендую, что если он не делает что-то тривиальное, весьма вероятно, что, если охоту фоне увидим, какую-то часть его, что должен быть полностью переписан, до такой степени, что не стоит не использовать его, если он не работает совершенно.
И Этот вопрос, не отвечает именно вашу проблему, но, безусловно, избежать много головной боли.