PHP SoapClient не может работать с https WS

У меня проблема с PHP SoapClient с WS (WSDL), который содержит https. моя версия PHP – 5.2.5. прежде чем вы спросите, да, я использую расширения для мыла PHP и openSSL.

URL, который я пытаюсь достичь: https://id3check.gb.co.uk/gbportalinternational/aspx/id3check_1b.asmx?WSDL

код, который я использую:

$url = "https://id3check.gb.co.uk/gbportalinternational/aspx/id3check_1b.asmx?WSDL"; $options["connection_timeout"] = 25; $options["location"] = $url; $client = new SoapClient($url,$options); 

он не работает при построении SoapClient, и я получаю следующую ошибку:

Предупреждение: SoapClient :: SoapClient ( https://id3check.gb.co.uk/gbportalinternational/aspx/id3check_1b.asmx?WSDL ): не удалось открыть поток: попытка подключения не удалась, потому что связанная сторона не ответила должным образом после периода времени или установленное соединение не удалось, поскольку подключенный хост не смог ответить. в C: \ MY-DEV-FOLDER \ index.php в строке 42 Предупреждение: SoapClient :: SoapClient (): предупреждение ввода-вывода: не удалось загрузить внешнюю сущность " https://id3check.gb.co.uk/gbportalinternational/ aspx / id3check_1b.asmx? WSDL "в C: \ MY-DEV-FOLDER \ index.php в строке 42 Исключение выбрано – SOAP-ERROR: Разбор WSDL: Не удалось загрузить с ' https://id3check.gb.co. uk / gbportalinternational / aspx / id3check_1b.asmx? WSDL '

может ли кто-нибудь сказать мне, в чем проблема?

благодаря

Эрез

Вам нужно будет включить OpenSSL в PHP для получения содержимого по https.

Раскомментируйте эту строку в php.ini

 extension=php_openssl.dll 

Найдите раздел openssl в phpinfo ():

 OpenSSL support => enabled OpenSSL Library Version => OpenSSL 0.9.8k 25 Mar 2009 OpenSSL Header Version => OpenSSL 0.9.8k 25 Mar 2009 

Я просто запустил код, который вы дали, и он отлично работал:

 <?php $url = "https://id3check.gb.co.uk/gbportalinternational/aspx/id3check_1b.asmx?WSDL"; $options["connection_timeout"] = 25; $options["location"] = $url; $options['trace'] = 1; $client = new SoapClient($url,$options); print_r($client->__getFunctions()); 

приводит к

 Array ( [0] => ID3CheckInitialise_1bResponse ID3CheckInitialise_1b(ID3CheckInitialise_1b $parameters) [1] => ID3AddressLookupInitialise_1bResponse ID3AddressLookupInitialise_1b(ID3AddressLookupInitialise_1b $parameters) [2] => ID3Check_1bResponse ID3Check_1b(ID3Check_1b $parameters) [3] => AddressLookup_1bResponse AddressLookup_1b(AddressLookup_1b $parameters) ) 

Поэтому, возможно, вам стоит проверить, есть ли какие-либо сетевые проблемы: существует ли брандмауэр, блокирующий связь из вашего серверного процесса? (Я предполагаю, что это IIS?) Вы также можете проверить настройки safe_mode , хотя я сомневаюсь, что здесь проблема.