[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: SoapClient ошибка получения wsdl с сервиса по http
vartem
Приветствую,

Прошу помощи у сообщества, т.к. уже перепробовал все что мог.

Есть веб-сервис (не наш и изменить мы тут ничего не можем), который доступен по адресу https://x.x.x.x:4433/Service/Service.asmx?wsdl. Проблема в том что SSL сертификат у этого URL:
1. Самоподписанный
2. Вместо правильного host-name указана какая-то чушь.

Сам url вполне нормально открывается в интернет-браузере (если указать браузеру что мы согласны с риском и доверяем этому источнику), а так же получается через curl, если указать curl-у:

curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,false);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);

Однако SoapClient настойчиво продолжает мне показывать ошибку:
Warning: SoapClient::SoapClient(https://x.x.x.x:4433/Service/Service.asmx?wsdl): failed to open stream: HTTP Warning: SoapClient::SoapClient() request failed!
Warning: I/O warning : failed to load external entity
[WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://x.x.x.x:4433/Service/Service.asmx?wsdl' : failed to load external entity https://x.x.x.x:4433/Service/Service.asmx?wsdl"

Теперь сам вызов SoapClient:

$client = new SoapClient('https://x.x.x.x:4433/Service/Service.asmx?wsdl',
array(
// "soap_version"=> SOAP_1_2,
// 'features' => SOAP_SINGLE_ELEMENT_ARRAYS,

'trace' => 1,
'exceptions' => true,

'cache_wsdl' => WSDL_CACHE_NONE,
'verifypeer' => false,
'verifyhost' => false,
'stream_context' => stream_context_create(
array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
),
'https' => array(
'curl_verify_ssl_peer' => false,
'curl_verify_ssl_host' => false
)
)
)
)
);



та-же ситуация при запросе этого же url через file_get_contents('https://x.x.x.x:4433/Service/Service.asmx?wsdl', false, $stream_context );

$stream_context = stream_context_create([
'ssl' => array(
//'capture_session_meta' => true,
'verify_peer' => 0,
'verify_peer_name' => 0,
// 'allow_self_signed' => true,
)
]
);

file_get_contents('https://x.x.x.x:4433/Service/Service.asmx?wsdl', false, $stream_context );


версия PHP 5.5.30

Подскажите пожалуйста у кого какие идеи, т.к. все свои я уже исчерпал...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.