soap — PHP не может получить доступ к WSDL-файлу с помощью SoapClient или file_get_contents

Отредактировано для перефразирования с новой информацией.

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

Я могу получить доступ к файлу WSDL на HTTP: //network-machine.local: 8080 / сервис 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)
);
-1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]