Это решение работает хорошо, но вы должны объявить кодировку в заголовке Curl.
лал несколько скриптов, работающих с внешним WSDL. Я столкнулся с одним, я должен интегрировать в нашу систему, что я не могу получить работу. Я пытался в течение недели без какого-либо результата.
Сценарий уже не может создать конструктор:
$client = new SoapClient("https://webtjener09.kred.no/TestWebservice/OppdragServiceSoapHttpPort?WSDL");
Выдает ошибку:
PHP Fatal error: SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://webtjener09.kred.no/TestWebservice/OppdragServiceSoapHttpPort?WSDL' : failed to load external entity "https://webtjener09.kred.no/TestWebservice/OppdragServiceSoapHttpPort?WSDL"
У меня есть openssl, установленный и работающий с PHP, и я помню, что у меня уже есть другие рабочие SOAP-вызовы к другим WSDL через SSL. Я обнаружил, что не могу решить это с помощью сертификата, так как он не работает уже в конструкторе.
Но: Я попытался подключиться к удаленному серверу с помощью командной строки openssl, и эта команда также не удалась:
openssl s_client -connect webtjener09.kred.no:443 -state
Но затем я попытался принудительно установить SSL3, и он работал отлично, например так:
openssl s_client -ssl3 -connect webtjener09.kred.no:443 -state
Это заставило меня задуматься о том, что я должен соответствовать версии SSL удаленного сервера. Чтобы выполнить двойную проверку, я также попытался установить соединение cURL через PHP, и это не получилось, пока я не добавил принудительное использование SSL-версии следующим образом:
curl_setopt($ch, CURLOPT_SSLVERSION, 3);
Добавление CURLOPT_SSLVERSION к соединению cURL позволило. И тогда корень моего вопроса:
Как заставить PHP мыльный конструктор / вызов также использовать SSL3. Мне кажется, что это должно быть решением. Но я не смог выяснить, как настроить функцию PHP SOAP на использование только SSL3. Так как обе команды командной строки -openssl- и PHP cURL работают с принудительным использованием SSL3, то я предполагаю, что то же самое произойдет с моей SOAP-функцией?
Входы, пожалуйста?
(Использование Ubuntu Linux, PHP 5.3.3)