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

时间:2011-04-15 07:04:53

标签: php soap wsdl client

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

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

2 个答案:

答案 0 :(得分:0)

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

http://nusoap.sourceforge.net/

答案 1 :(得分:0)

您可以使用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
    }
}