我正在使用PHP 5进行SOAP调用,在调用之后,无论我作为参数传递什么,soap函数都不会返回值并且脚本的执行似乎停止了。我尝试过,有没有尝试,没有变化。我通过了空的$ params,非空的params等等。
此行之后:$ client-> getClient($ params);
b有一个回声,它永远不会被回应。就好像脚本在调用完成后停止运行一样。没有显示错误,并且error_log中没有显示任何内容。非常令人沮丧,任何想法?
$ params = array();
$client = new SoapClient("https://sandbox.paymentsgateway.net/WS/Client.wsdl",array(
'soap_version'=>SOAP_1_1,
'exceptions'=>true,
'trace'=>1,
'cache_wsdl'=>WSDL_CACHE_NONE,
'location'=>'https://sandbox.paymentsgateway.net/WS/Client.svc/basic'
));
try
{
echo '4';
$client->getClient($params);
echo 'b';
}
catch (Exception $e)
{
echo $e->getMessage();
}
答案 0 :(得分:1)
如果在WSDL模式下工作,则不得使用location
- 参数。它们应该互相排斥。请尝试删除location
- 参数。
编辑(因为上面没有帮助):
尝试检查SoapClient
是否可以正确解析WSDL:
print_r($client->__getFunctions());
print_r($client->__getTypes());
是否有任何身份验证,例如WSDL文档上的HTTP身份验证?
您的脚本是否会遇到执行时间或内存限制?看起来你正在连接到.NET websvice并且它们的WSDL往往会变得非常大 - PHP可能需要一些时间来解析WSDL。