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
任何人都知道如何解决这个问题?也许我忘了做某事?
谢谢,
比利
答案 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。