我正在开发一个php SoapClient。 Soap服务器是.NET服务器。 当客户端调用http地址并且答案来自客户端调用的服务器时,一切正常。
我遇到的问题是客户端必须调用https地址,服务器使用负载均衡系统,从而获得另一台服务器的响应(客户端调用serverX并有时从serverY获取答案,有时从serverZ获取答案等) )。
这是我使用的php代码(没有https且没有负载平衡时工作正常,不适用于https和负载均衡):
$client = new SoapClient('http://www.serverA.com/serviceB.svc?wsdl');
$immat = 'yadiyadiyada';
$params = array('immat' => $immat);
$result = $client->__soapCall('setImmat', array($params));
$id_found = $result->setImmatResult;
知道我应该怎么做?任何提示将不胜感激!
由于
答案 0 :(得分:0)
我终于找到了解决方法。
我没有使用服务器提供的XML文件实例化php SoapClient,而是在客户端制作了它的副本,并对其进行了一些修改。我只更改了“schemaLocation”:服务器端,值类似于“https://www.serverY.com/serviceB.svc?xsd=xsd0”,我将其替换为“https://www.serverX.com/serviceB.svc?xsd=xsd0”。 现在我用这个新文件实例化php SoapClient:
$client = new SoapClient('/local_path/wsdl.xml');
它有效!