Я пытаюсь получить доступ к этому URI: http://143.166.84.118/services/assetservice.asmx?WSDL
(Информация о гарантии Dell)
В Windows Powershell я могу сделать это без проблем:
$service = New-WebServiceProxy -Uri http://143.166.84.118/services/assetservice.asmx?WSDL
Но в PHP:
$DELL_URL = "http://143.166.84.118/services/assetservice.asmx?WSDL"; //Access webproxy by IP
$soap = new SoapClient($DELL_URL);
Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://143.166.84.118/services/assetservice.asmx?WSDL' in C:\path\to\my\script.php:25 Stack trace: #0 C:\path\to\my\script.php(25): SoapClient->SoapClient('http://143.166....') #1 {main} thrown in C:\path\to\my\script.php on line 25
Что я делаю не так в php? Я знаю, что URL работает, потому что он работает с powershell.
По предложению Пита я пошел в http://143.166.84.118/services/assetservice.asmx?WSDL
и скачал локальную копию файла, затем сделал это, которое работало:
$soap = new SoapClient($wsdlfilepath);
Всегда ли мне нужно загружать локальную копию файла при использовании php?
edit: не вносил никаких изменений, но теперь я получаю сообщение об ошибке «Uncaught SoapFault исключение: [Клиент] выглядит так, как будто мы не получили XML-документ в …». Должен ли я беспокоиться об этом? Вы можете просмотреть файл wsdl, перейдя по ссылке. Есть ли проблемы с этим или лишним пробелом? Я не видел никого.
Задача ещё не решена.
Других решений пока нет …