我正在创建一个处理Barclays finance SOAP接口的接口。我有WSDL,它是有效的,所以我可以运行两个
$soapClient->__getTypes()
$soapClient->__getFunctions()
返回有效数据。
当我尝试请求呼叫时,例如:
var_dump($soapClient->__soapCall("SubmitNewApplicationShort", array()));
我收到错误
Fatal error: Uncaught SoapFault exception: [Client] DTD are not supported by SOAP in
/www/vhosts/geniusdev.1anetworks.net/http/Barclays/financeWSDL.php:16
Stack trace:
我认为这可能是因为输入数据,但当我将其更改为空时我仍然没有得到回应。
答案 0 :(得分:0)
修正了我自己的问题我添加了一个尝试并抓住了肥皂调用:
try {
var_dump($soapClient->__soapCall("SubmitNewApplicationShort", array());
} catch ( SoapFault $e ) { // Do NOT try and catch "Exception" here
var_dump($soapClient->__getLastRequest());
var_dump($soapClient->__getLastRequestHeaders());
var_dump($soapClient->__getLastResponse());
var_dump($soapClient->__getLastResponseHeaders());
}
这告诉我它正在尝试连接到localhost而不是Web服务。通过将位置传递给SoapClient声明,它解决了这个问题。