Ошибка при возвращении 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 от прав.

Author: Maniero, 2014-02-10

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

 2
Author: renatomaraujo, 2017-05-23 12:37:33

Http://sourceforge.net/projects/nusoap/files/nusoap/

(Last Update: 2011-01-13

И Это не реагирует именно ваш вопрос, однако, будет решать свою ошибку. В прошлом, когда мне приходилось работать с RESTService в PHP, я использовал Nusoap, потому что он был лучше документировано и много ссылок citavam он. Но то, что я только что осознав на практике, что он уже был очень полезным в древние времена, но PHP развивалась и другие библиотеки, развивались более быстрый.

В Nusoap-это, в основном, проект, который остановился на время. Он уже был хорош, однако , если столкнулись с ошибкой, он, вы не получите шанс решить иначе не в состоянии использовать его или сделать в PHP чистого. Настоятельно рекомендую, что если он не делает что-то тривиальное, весьма вероятно, что, если охоту фоне увидим, какую-то часть его, что должен быть полностью переписан, до такой степени, что не стоит не использовать его, если он не работает совершенно.

И Этот вопрос, не отвечает именно вашу проблему, но, безусловно, избежать много головной боли.

 1
Author: Emerson Rocha, 2020-06-11 14:45:34