Подключение к защищенной WS-Security веб-службе с помощью PHP

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

$client = new SoapClient("https://example.com/WSDL/nameofservice",
       array('trace' => 1,)
);

а затем перейти на сайт в браузере, я получаю:

Fatal error: Uncaught SoapFault exception: 
[WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from
'https://example.com/WSDL/nameofservice' in /path/to/my/script/myscript.php:2 
Stack trace: #0 /path/to/my/script/myscript.php(2): 
SoapClient->SoapClient('https://example...', Array) #1 {main} thrown in 
/path/to/my/script/myscript.php on line 2

Если я попытаюсь определить службу как сервер Soap, например:

$server= new SoapServer("https://example.com/WSDL/nameofservice");

Я получил:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>WSDL</faultcode>
<faultstring>
SOAP-ERROR: Parsing WSDL: 
Couldn't load from 'https://example.com/WSDL/nameofservice'
</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Я еще не пытался отправить конверт необработанного запроса, чтобы увидеть, что возвращает сервер, но это может быть обходным путем. Но я надеялся, что кто-нибудь скажет мне, как я могу настроить его, используя встроенные классы php. Я попытался добавить «userName» и «password» в массив, но это не помогло. Проблема в том, что я даже не могу сказать, достигаю ли я удаленный сайт вообще, не говоря уже о том, отклоняет ли он запрос.

Ответы на вопрос(7)

Ваш ответ на вопрос