веб-сервисы — PHP: как сделать SOAP-запрос из этого XML?

Кто-нибудь может мне помочь?

Я не могу выполнить функцию AdvogadoRegular в этом веб-сервисе.

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:int="https://www5.oab.org.br/integracao/">
<soap:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
<token xmlns="http://CFOAB.Integracao">xxxxxxxx</token>
<wsa:To>https://www5.oab.org.br/Integracao/CNA.svc</wsa:To>
</soap:Header>
<soap:Body>
<int:AdvogadoRegular>
<!--Optional:-->
<int:cpf>99999999999</int:cpf>
</int:AdvogadoRegular>
</soap:Body>
</soap:Envelope>

Я пытаюсь получить доступ из этого кода.

// WSDL
$client = new SoapClient('https://www5.oab.org.br/Integracao/CNA.svc?wsdl', $options = array(
'soap_version' => SOAP_1_2,
'trace'=>1,
'exceptions'=> 0
));

// NOME DA FUNÇÃO A SER EXECUTADA
$function = 'AdvogadoRegular';

// PARÂMETROS DA FUNÇÃO A SER EXECUTADA
$arguments= array('AdvogadoRegular' => array( 'cpf'  => '99999999999' ));

// URL DO WEB SERVICE
$options = array('location' => 'https://www5.oab.org.br/Integracao/CNA.svc');// HEADER
$token = array(
'token'=> 'xxxxxxxx',
'wsa:To'=>'https://www5.oab.org.br/Integracao/CNA.svc',

);
$header = new SoapHeader("http://CFOAB.Integracao",'token',$token,false);
$client->__setSoapHeaders($header);// EXECUTA A FUNÇÃO
$result = $client->__soapCall($function, $arguments, $options);

echo $result;

Я думаю, что ошибка происходит, когда я пытаюсь отправить заголовок. Пожалуйста, помогите мне…

2

Решение

Во-первых, я бы посоветовал вам использовать генератор WSDL для php, такой как PackageGenerator, затем, что касается вашего заголовка, кажется, что это заголовок WsSecurity, который вы должны отправить, поэтому вы должны попробовать использовать WsSecurity проект, который облегчает способ добавить этот тип заголовка

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]