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) 是不允许的。
我尝试为 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) 是不允许的。