Conexão ao Serviço Web protegido por WS-Security com PHP
Estou tentando conectar-me a um serviço da Web protegido por senha e o URL é https. Não consigo descobrir como autenticar antes que o script faça uma solicitação. Parece que ele faz uma solicitação assim que eu defino o serviço. Por exemplo, se eu inserir:
$client = new SoapClient("https://example.com/WSDL/nameofservice",
array('trace' => 1,)
);
e depois vá para o site no navegador, recebo:
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
Se eu tentar definir o serviço como um servidor Soap, como:
$server= new SoapServer("https://example.com/WSDL/nameofservice");
Eu recebo
<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>
Ainda não tentei enviar um envelope de solicitação bruta para ver o que o servidor retorna, mas isso pode ser uma solução alternativa. Mas eu esperava que alguém pudesse me dizer como posso configurá-lo usando as classes internas do php. Tentei adicionar "userName" e "password" à matriz, mas isso não foi bom. O problema é que nem sei dizer se estou acessando o site remoto, muito menos se está recusando a solicitaçã