不支持Barclays SOAP BPF集成DTD

时间:2014-08-04 09:02:17

标签: php soap wsdl

我正在创建一个处理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:

我认为这可能是因为输入数据,但当我将其更改为空时我仍然没有得到回应。

1 个答案:

答案 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声明,它解决了这个问题。