SOAP-запрос через https не выполняется каждый раз - PullRequest
1 голос
/ 14 октября 2011

мой первый раз, когда я выполняю SOAP-запрос, происходит сбой и снова происходит сбой.Я должен отправить некоторые данные через SOAP, но у меня не получается стабильное соединение.

Я использую SOAP-расширение PHP.Мой код выглядит следующим образом.

$certificate = file_get_contents(DATA_PATH.'/modules/va/misc/CKTC.cer');
$options = array(
                'uri'               => 'https://data2.kroschke.net/service/MeinAutoUeberfuehrungen',
                'allow_self_signed' => true,
                'verify_peer'       => true,
                'local_cert'        => $certificate,
                'trace'             => 1,
                'exceptions'        => true,
            );
$wsdl = 'https://data2.kroschke.net/service/MeinAutoUeberfuehrungen?WSDL';

$SOAPClient = new SoapClient($wsdl, $options);

fb($SOAPClient->__getFunctions());

Теперь моя проблема заключается в том, что запрос SOAP всегда заканчивается тайм-аутом.

Я проверил мои настройки php и активировали SOAP и OpenSSL.

Я также попробовал это с .pem вместо .cer File.Та же проблема.

Это то, что я получаю все время: Предупреждение: SoapClient :: SoapClient (https://data2.kroschke.net/service/MeinAutoUeberfuehrungen?WSDL): не удалось открыть поток: истекло время ожидания соединения в

Кто-нибудь, кто может помочь?

PS: Не обращайте внимания на функцию fb (). Просто функция для печати всего в FireBug.

1 Ответ

1 голос
/ 14 октября 2011

просто попробуйте открыть https://data2.kroschke.net или https://data2.kroschke.net/service/MeinAutoUeberfuehrungen?WSDL в вашем браузере: вы тоже получите тайм-аут.

лучшее решение - связаться спровайдер этого мыльного сервера ( kroschke.com / kroschke.de ?) и спросите их, почему их сервер не работает или кажется зависает.

РЕДАКТИРОВАТЬ:
это, похоже, не проблема, поэтому ваш единственный вариант - установить более высокое значение тайм-аута.для этого просто добавьте connection_timeout (значение в секундах) к вашим опциям:

$options = array(
            'uri'               => 'https://data2.kroschke.net/service/MeinAutoUeberfuehrungen',
            'allow_self_signed' => true,
            'verify_peer'       => true,
            'local_cert'        => $certificate,
            'trace'             => 1,
            'exceptions'        => true,
            'connection_timeout'=> 30
        );

, если оно все еще истекло, установите значение еще выше - если оно все еще истекло, попробуйте проверить мыло-связи с программой типа soapUI перед ее реализацией с помощью PHP - если у вас также возникают проблемы с soapUI, обратитесь к поставщику этого мыльного сервера и спросите, почему их методы занимают так много времени.

для получения дополнительной информации взгляните на мыло-клиент и его опции .

...