php wsdl 参数,php – 它如何使用神奇的WSDL URI查询参数?

我正在Symfony应用程序中构建一个Soap服务器.作为第一步,我使用“hello world”Soap动作创建了一个控制器并为其定义了路径:

使用routing.yml

api.soap.foo

path: /soapapi/foo

defaults: { _controller: SoapBundle\Controller\FooController:bar }

methods: [GET, HEAD, POST]

FooController的#巴(…)

protected function bar(Request $request)

{

$autodiscover = new AutoDiscover();

$autodiscover

->setClass(MyFooBarService::class)

->setUri('http://my-app.loc/soapapi/foo/bar')

->setServiceName('MyFooBarService')

;

$wsdl = $autodiscover->generate();

$wsdl->dump(__DIR__ . '/soapapi-foo-bar.wsdl');

$server = new SoapServer(__DIR__ . '/soapapi-foo-bar.wsdl');

$server->setObject($this->myFooBarService);

$response = new Response();

$response->headers->set('Content-Type', 'text/xml; charset=ISO-8859-1');

ob_start();

$server->handle();

$response->setContent(ob_get_clean());

return $response;

}

现在,当我在浏览器中调用http://my-app.loc/soapapi/foo/bar或使用cURL(通过HTTP GET)时,我收到一个错误:

SOAP-ENV:Client

Bad Request

但是当我调用http://my-app.loc/soapapi/foo/bar?wsdl时,我实际上得到了(生成的)WSDL文档.为什么?我没有定义任何地方,它应该像这样工作.为什么以及如何(魔术)起作用?这是Symfony特有的魔力吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值