Ошибка при получении http заголовков SOAP

У меня проблема с SOAP, но я не нашел реального ответа.

try {
$objResponse = $objSoapClient->$strMethod($objMethod->getSoapRequest());
}
catch (SoapFault $e) {
GlobalLogState::write("exception with code(".$e->getCode()."): \n".$e->getMessage());
}

Это мой простой SOAP-запрос в блоке try catch.

Я получаю исключение SoapFault:

Error Fetching http headers

В чем причина этого?

2

Решение

Чтобы исправить эту ошибку, мы можем увеличить либо увеличить время ожидания сокета default_socket_time в php.ini или добавить connection_timeout параметр в массиве параметров передается конструктору SoapClient.

Эти параметры находятся в секунд.

  1. В php.ini

    default_socket_timeout = 120

Кроме того, вы можете изменить код

ini_set('default_socket_timeout', 120);

Примечание. Время ожидания сокета по умолчанию в php составляет 60 секунд.

  1. connection_timeout параметр в конструкторе SoapClient

$client = new SoapClient($wsdl, array('connection_timeout' => 120));

0

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

Конфигурация, которая работала для меня, определяла в моем php-скрипте следующие параметры:

    ini_set('default_socket_timeout', 5000);
$client = new \SoapClient($url,array(
'trace' =>true,
'connection_timeout' => 5000,
'cache_wsdl' => WSDL_CACHE_NONE,
'keep_alive' => false,
));

Прокомментируйте, пожалуйста.

Самое важное определение параметра, согласно моему опыту с этой проблемой, было ini_set (‘default_socket_timeout’, 5000);

Во время моих тестов я установил default_socket_timeout равным 5 секундам, и ошибка «Ошибка получения заголовков http» возникла мгновенно.

Я надеюсь, что это поможет вам.

0

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