PHP 中是否有可以处理具有多个端点的 WSDL 的 SOAP 客户端库?

发布于 2024-11-01 11:01:13 字数 118 浏览 2 评论 0原文

我必须使用 WCF(.net) 服务。 wsdl 中有多个端点,但我无法从中选择 BasicHttpBinding。

有没有支持这个的PHP客户端?或者我可以在非 WSDL 模式下以某种方式实现这一目标吗?

I have to consume WCF(.net) service. There are multiple endpoints in the wsdl, but I can not choose BasicHttpBinding from them.

Is there any PHP client which support this? Or can I achive this in some way in non WSDL mode?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

無心 2024-11-08 11:01:13

有非常好的 PHP SOAP 库,可用于构建基于 SAOP 的 Web 服务并使用 SOAP Web 服务。

http:// /nusoap.sourceforge.net/

There is very good PHP SOAP library which can be used for building SAOP based web services and consuming SOAP web services too..

http://nusoap.sourceforge.net/

七分※倦醒 2024-11-08 11:01:13

您可以使用 WSDL 模式,并且仍然可以通过构造函数上的“location”选项以及通过使用 __setLocation() 函数来设置位置。您还可以为 SoapClient 创建一个包装器类来执行更复杂的操作,例如从 WSDL 中提取所有端点,然后对它们应用逻辑以确定使用哪个端点来做什么:

class SoapClientCompatibility extends SoapClient{

    public function __construct($wsdl, $options){
        parent::__construct($wsdl, $options);

        //determine which location you want to use here

        parent::__setLocation($chosenLocation);
    }

    public function __doRequest($request, $location, $action, $version){
        // --Or, perhaps you want to dynamically switch location in here
    }
}

You can use WSDL mode, and still set a location, both with the "location" option on the constructor, and through use of the __setLocation() function. You could also make a wrapper class for the SoapClient to do more sophisticated things like pulling all the endpoints out of the WSDL, and then applying logic to them to determine which endpoint to use for what:

class SoapClientCompatibility extends SoapClient{

    public function __construct($wsdl, $options){
        parent::__construct($wsdl, $options);

        //determine which location you want to use here

        parent::__setLocation($chosenLocation);
    }

    public function __doRequest($request, $location, $action, $version){
        // --Or, perhaps you want to dynamically switch location in here
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文