【发布时间】:2011-04-15 07:04:53
【问题描述】:
我必须使用 WCF(.net) 服务。 wsdl 中有多个端点,但我无法从中选择 BasicHttpBinding。
是否有任何支持此功能的 PHP 客户端?或者我可以在非 WSDL 模式下以某种方式实现这一点吗?
【问题讨论】:
我必须使用 WCF(.net) 服务。 wsdl 中有多个端点,但我无法从中选择 BasicHttpBinding。
是否有任何支持此功能的 PHP 客户端?或者我可以在非 WSDL 模式下以某种方式实现这一点吗?
【问题讨论】:
有一个非常好的 PHP SOAP 库,可用于构建基于 SAOP 的 Web 服务和使用 SOAP Web 服务。..
【讨论】:
您可以使用 WSDL 模式,但仍然可以设置位置,既可以使用构造函数中的“位置”选项,也可以使用 __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
}
}
【讨论】: