gpt4 book ai didi

php - Soap 服务器在 Laravel 5.2 中不工作

转载 作者:可可西里 更新时间:2023-11-01 00:57:25 36 4
gpt4 key购买 nike

我正在尝试在 laravel 5.2 中创建一个 soap 服务器。这是我的代码:
SoapController.php 的内容:

<?php namespace Giant\Http\Controllers;

class SoapController extends Controller {

public function __construct() {
parent::__construct();
ini_set('soap.wsdl_cache_enabled', 0);
ini_set('soap.wsdl_cache_ttl', 0);
ini_set('default_socket_timeout', 300);
ini_set('max_execution_time', 0);
}

public function server() {
$location = url('server'); // http://payment.dev/server
$namespace = $location;
$class = "\\Giant\\Http\\Controllers\\HelloWorld";

$wsdl = new \WSDL\WSDLCreator($class, $location);
$wsdl->setNamespace($namespace);

if (isset($_GET['wsdl'])) {
$wsdl->renderWSDL();
exit;
}

$wsdl->renderWSDLService();

$wsdlUrl = url('wsdl/server.wsdl');
$server = new \SoapServer(
url('server?wsdl'),
array(
'exceptions' => 1,
'trace' => 1,
)
);

$server->setClass($class);
$server->handle();
exit;
}

public function client() {
$wsdl = url('server?wsdl');
$client = new \SoapClient($wsdl);

try {
$res = $client->hello('world');
dd($res);
} catch (\Exception $ex) {
dd($ex);
}
}
}


class HelloWorld {
/**
* @WebMethod
* @desc Hello Web-Service
* @param string $name
* @return string $helloMessage
*/
public function hello($name) {
return "hello {$name}";
}
}

我的 wsdl 文件是:wsdl

还有我的路线:

Route::any('/server', 'SoapController@server');
Route::any('/client', 'SoapController@client');

我得到的结果:

Internal Server Error

:(
我用 piotrooo/wsdl-creator生成wsdl。 (这没有问题,它在 laravel 4.2 中工作)。我也尝试过 nusoap 和 php2wsdl 库。
我的 SoapClient 运行良好。因为它可以从其他 url 中的其他 soap 服务器获取服务,但我认为我的 SoapServer 不能正常工作。
我什至在错误日志文件中没有发现任何错误。

最佳答案

我刚刚弄清楚问题出在哪里:
日志的问题是我在 www 文件夹中检查错误日志,而 laravel 有自己的日志文件。使用它我发现我对 TokenMismatchException 有疑问。 Laravel 的 CsrfVerifyMiddleware 不允许我请求使用 soap。
我刚刚将我的 url 添加到 CsrfVerifyMiddleware 文件中的“except”数组。

关于php - Soap 服务器在 Laravel 5.2 中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37412965/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com