Laravel SOAP 服务器和客户端:不允许的方法

Laravel SOAP Server & Client: Method not allowed

我尝试为 Laravel Framework 5.5.13 设置 SOAP 服务器。因此,我创建了两个 类(Server.php 和 Client.php)和两个控制器,SoapServerController 和 SoapClientController。

这是源代码:

app/Classes/Soap/Server.php

namespace App\Classes\Soap;

class Server {
    public function __construct() {
    }

    public function getDate() {
        return date('Y-m-d');
    }

}

app/Classes/Soap/Client.php

namespace App\Classes\Soap;

class Client {

    protected $instance;

    public function __construct() {
        $params = array( 'uri' => '/soap/server',
                         'location' => url('/soap/server'),
                         'trace' => 1,
                         'soap_version' => SOAP_1_2
                         );

        $this->instance = new \SoapClient( null, $params );

    }

    public function getDate() {
        return $this->instance->getDate();
    }

}

app/Http/Controllers/SoapServerController.php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Classes\Soap;

class SoapServerController extends Controller
{
    public function index() {
        $params = array( 'uri' => url('/soap/server') );
        $server = new \SoapServer( null, $params );
        $server->setClass( Soap\Server::class );
        $server->handle();
    }

}

app/Http/Controllers/SoapClientController.php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Classes\Soap;

class SoapClientController extends Controller
{
    public function index() {
        $client = new Soap\Client;
        $client->getDate();
    }
}

当我打开路由 /api/soap/client 时,出现错误:

SoapFault: Method Not Allowed

我是否必须更改路线文件中的某些内容?

请务必注意,SOAP 调用都应该通过 POST 请求执行。很可能,您的路由只设置了 GET 请求,因此方法 (POST) 是不允许的。