Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> SoapClient ошибка получения wsdl с сервиса по http
vartem  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 1
Пользователь №: 42103
На форуме: 1 год, 25 дней
Карма:




Приветствую,

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

Есть веб-сервис (не наш и изменить мы тут ничего не можем), который доступен по адресу 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

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

Это сообщение отредактировал vartem - 15.11.2015 - 18:01
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Invis1ble  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 11789
Пользователь №: 23195
На форуме: 6 лет, 4 месяца, 17 дней
Карма: 429

Трезвый :
7 лет, 3 месяца, 17 дней


идей нет, но нагуглил на стэке релевантный вопрос, ты уже все советы оттуда попробовал?
https://stackoverflow.com/questions/8443618...-php-soapclient

хотя вот идея появилась, если через курл качается - качай и "pass the local copy to the SoapClient" smile.gif


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса