使用soap客户端时获取未捕获的SoapFault异常

时间:2010-08-27 13:16:09

标签: php api wsdl asmx soap-client

PHP版本:5.3.3

我正在使用SOAP扩展从web api中提取数据。您可以在下面看到我的连接详情。当它到达第3行时,我收到错误:

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://www.global1.autotask.net/atservices/1.2/atws.wsdl' : failed to load external entity "https://www.global1.autotask.net/atservices/1.2/atws.wsdl" in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\ATAPI\index.php:5 Stack trace: #0 C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\ATAPI\index.php(5): SoapClient->SoapClient('https://www.glo...', Array) #1 {main} thrown in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\ATAPI\index.php on line 5

以下是我的连接详情:

$wsdl = 'https://www.global1.autotask.net/atservices/1.2/atws.wsdl';
$loginarray = array('login' => "billy.jones@networkroi.co.uk", 'password' => "******", 'uri'=>"http://autotask.net/ATWS/v1_2/", 'location'=>"https://global1.autotask.net/atservices/1.2/atws.asmx");
$client = new SoapClient($wsdl, $loginarray);

我用谷歌搜索,看到这可能是肥皂扩展的一个错误?

我没有注释:

extension=php_soap.dll

在php.ini文件中。而且我还确保我的允许url fopen设置为on:

allow_url_fopen = On

任何人都知道如何解决这个问题?也许我忘了做某事?

谢谢,

比利

3 个答案:

答案 0 :(得分:1)

首先,我建议您在Autotask CommunITy网站(community.autotask.com)上发布一个问题,因为那里有很多资源非常熟悉Autotask特定的东西。

您使用的URL对于WebServices访问不正确。如果您使用https://webservicesg1.autotask.net/atservices/1.2/atws.wsdl它是否有效?

特拉维斯

答案 1 :(得分:0)

1)它对我来说很好。我可以加载,甚至不需要密码。好吧,问题出现在一些PHP / Soapclient版本中。我建议你将PHP升级到最新版本。

2)如果它仍然不起作用,请尝试NuSoap。它也非常棒。

答案 2 :(得分:0)

为什么你认为某个文件扩展名为.wsdl?要从ASMX Web服务中获取WSDL,请将“?wsdl”附加到服务的末尾,例如https://global1.autotask.net/atservices/1.2/atws.asmx?wsdl