2014-09-30 4 views
1

Переделан для повторной установки новой информации.PHP не может получить доступ к WSDL-файлу с помощью SoapClient или file_get_contents

Я пытаюсь получить доступ к API SOAP через PHP. Приложение с API расположено в моей корпоративной сети, а WS отображается на порту 8080.

Я могу получить доступ к файлу WSDL на http://network-machine.local:8080/service?wsdl в моем браузере (он загружается очень быстро). Тем не менее, следующие фрагменты кода просто привести к фатальной ошибке максимального времени выполнения превышена:

new SoapClient('http://network-machine.local:8080/service?wsdl'); 

file_get_contents('http://network-machine.local:8080/service?wsdl'); 

PHP может получить доступ к другим удаленным сервисам (включая WSDL).

Если я сохраню файл wsdl (и его импортированные файлы) на свой локальный компьютер и обновил ссылки, PHP может получить доступ к услугам API просто. Он просто не может втянуть WSDL.

Итак, я предполагаю, что это какая-то проблема с сетью/брандмауэром. Есть идеи?

Редактировать с дополнительной информацией:

Curl работает просто отлично. С помощью cURL я могу получить общий размер файла WSDL. Когда я использую этот размер как параметр MAXLENGTH для file_get_contents, эта функция также работает нормально.

ответ

-1

Эти бит кода работал для меня, чтобы прочитать местный wsdl файл:

$service = new SoapClient( 
    dirname(__FILE__) .'/mywsdlfile.wsdl', 
    array( 
    "trace" => true, 
    "exceptions" => false) 
); 
+0

у меня нет какого-либо вопроса загрузки локального файла WSDL. – gazareth