当前位置:  开发笔记 > 编程语言 > 正文

它如何与神奇的WSDL URI查询参数一起使用?

如何解决《它如何与神奇的WSDLURI查询参数一起使用?》经验,为你挑选了0个好方法。

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

routing.yml

api.soap.foo
    path: /soapapi/foo
    defaults: { _controller: SoapBundle\Controller\FooController:bar }
    methods: [GET, HEAD, POST]

FooController#bar(...)

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特有的魔力吗?

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有