我必须使用WCF(.net)服务。 wsdl中有多个端点,但我不能从它们中选择BasicHttpBinding。
有没有支持此功能的PHP客户端?或者我可以在非WSDL模式下以某种方式实现这一点吗?
答案 0 :(得分:0)
有非常好的PHP SOAP库,可用于构建基于SOAP的Web服务和使用SOAP Web服务。
答案 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
}
}