(PHP 5, PHP 7, PHP 8)
SoapClient::__soapCall — Chama uma função SOAP
$name
,$args
,$options
= null
,$inputHeaders
= null
,&$outputHeaders
= null
Esta é uma função API de baixo nível usada para fazer uma chamada SOAP. Geralmente,
no modo WSDL, as funções SOAP podem ser chamadas como métodos do
Objeto SoapClient. Este método é útil em modo não WSDL
quando soapaction
é desconhecido, uri
difere do padrão ou ao enviar e/ou receber cabeçalhos SOAP.
Em caso de erro, uma chamada para uma função SOAP pode fazer com que o PHP lance exceções ou retorne um Objeto SoapFault se as exceções estiverem desabilitadas. Para verificar se a chamada de função falhou ao capturar as exceções SoapFault, verifique o resultado com is_soap_fault().
name
O nome da função SOAP a ser chamada.
args
Um array dos argumentos a serem passados para a função. Isso pode ser um array ordenado ou associativo. Observe que a maioria dos servidores SOAP exigem nomes de parâmetros a serem fornecidos; nesse caso, este deve ser um array associativo.
options
Um array associativo de opções a serem passadas ao cliente.
A opção location
é a URL do serviço Web remoto.
A opção uri
é o namespace de destino do serviço SOAP.
A opção soapaction
é a ação a ser chamada.
inputHeaders
Um array de cabeçalhos a serem enviados junto com a solicitação SOAP.
outputHeaders
Se fornecido, esse array será preenchido com os cabeçalhos da resposta SOAP.
As funções SOAP podem retornar um ou vários valores. Se apenas um valor for retornado pela função SOAP, o valor de retorno será um escalar. Se vários valores forem retornados, um array associativo de parâmetros nomeados de saída são retornados em vez disso.
Em caso de erro, se o objeto SoapClient foi construído
com a opção exceptions
definida como false
,
um objeto SoapFault será retornado.
Exemplo #1 Exemplo de SoapClient::__soapCall()
<?php
$client = new SoapClient("some.wsdl");
$client->SomeFunction($a, $b, $c);
$client->__soapCall("SomeFunction", array($a, $b, $c));
$client->__soapCall("SomeFunction", array($a, $b, $c), NULL,
new SoapHeader(), $output_headers);
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
'uri' => "http://test-uri/"));
$client->SomeFunction($a, $b, $c);
$client->__soapCall("SomeFunction", array($a, $b, $c));
$client->__soapCall("SomeFunction", array($a, $b, $c),
array('soapaction' => 'some_action',
'uri' => 'some_uri'));
?>