ответ на запрос php soapclient - PullRequest
       8

ответ на запрос php soapclient

0 голосов
/ 01 октября 2018

Привет! Мне нужно создать мыльный клиент, чтобы отправить запрос: https://api.edu.gov.pt/services/e360/listStudentCodes?wsdl Вот мой код:

$Username="********";
$PAssword="********";
$anolectivo=2017;
$CodEscola=123456;
$Codes="https://api.edu.gov.pt/services/e360/listStudentCodes?wsdl";

$options = array(
  'login' => $Username,
  'password' => $password,
  'exceptions' => false,
  'trace' => 1
  ,'stream_context' => stream_context_create(array('ssl'=>array('verify_peer'=>false,'verify_peer_name'=>false, 'allow_self_signed' => true)))
);  

try{
    $client = new SoapClient($Codes,$options);   

    $result = $client->__soapCall("ListarCodigosAlunos",array('AnoLetivo' => $anolectivo,'CodigoAgrupamento' => $CodEscola,'CodigoEscola' => $CodEscola),$options);
    if (is_soap_fault($result)) {
       trigger_error("Error SOAP: (faultcode: {$result->faultcode}, faultstring: {$result->faultstring})", E_USER_ERROR);
    }else print_r($result);   
} catch (Exception $e) { 
            echo "<h2>Exception Error!</h2>"; 
            echo $e->getMessage(); 
} 

, но все, что я получаю, это:

Неустранимая ошибка: SOAP-ERROR: синтаксический анализ WSDL: неизвестное требуемое расширение WSDL 'http://www.w3.org/2006/05/addressing/wsdl' в E: \ xampp \ htdocs \ SOAP \ test.php в строке 34


мне удается спуститься до

SoapFault Object
(
    [message:protected] => Wrong Version
    [string:Exception:private] => 
    [code:protected] => 0
    [file:protected] => E:\xampp\htdocs\SOAP\e360T2.php
    [line:protected] => 46
    [trace:Exception:private] => Array
        (
            [0] => Array
                (
                    [file] => E:\xampp\htdocs\SOAP\e360T2.php
                    [line] => 46
                    [function] => __soapCall
                    [class] => SoapClient
                    [type] => ->
                    [args] => Array
                        (
                            [0] => ListarCodigosAlunos
                            [1] => Array
                                (
                                    [AnoLetivo] => 2018
                                    [CodigoAgrupamento] => 400324
                                    [CodigoEscola] => 400324
                                )

1 Ответ

0 голосов
/ 01 октября 2018

У вас есть два варианта:

Загрузите файл WSDL самостоятельно, отредактируйте его, чтобы изменить wsdl:required="true" на wsdl:required="false", а затем настройте свой клиент SOAP для использования локального WSDL.

Илииспользуйте внешнюю библиотеку, подобную одной из них, которая понимает расширения WSDL:

https://github.com/robrichards/wse-php

https://github.com/coopTilleuls/wse-php

...