Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [XML][PHP]SOAP błąd w pliku wsdl, jak nadpisać określony fragment xml
eMCeH
post
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 1
Dołączył: 1.04.2012
Skąd: Świętokrzyskie

Ostrzeżenie: (0%)
-----


Witam,

po wywołaniu:
Kod
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        
        <?php
        echo '<br />';
//Utworzenie obiektu klienta SOAP
        $client = new SoapClient("https://ewus.nfz.gov.pl/ws-broker-server-ewus/services/Auth?wsdl");
        $functions = $client->__getFunctions();
        echo '<br />';
        var_export($functions);
        echo '<br />';
//Logowanie
        $user = 'user';
        $pass = 'haslo';
        echo '<br />';
        $sesja = $client->login($user, $pass);
        var_dump($sesja);
        ?>


serwer zgłasza błąd:

Kod
Uncaught SoapFault exception: [soapenv:Server] org.apache.axis2.databinding.ADBException: Unexpected subelement {http://xml.kamsoft.pl/ws/kaas/login_types}login in C:\xampp\htdocs\ewus\index.php:21 Stack trace: #0 C:\xampp\htdocs\ewus\index.php(21): SoapClient->__call('login', Array) #1 C:\xampp\htdocs\ewus\index.php(21): SoapClient->login('user', 'haslo') #2 {main} thrown in C:\xampp\htdocs\ewus\index.php on line 21


na forum Delphi
Kod
http://pl.comp.lang.delphi.narkive.com/1m1aRvZb/import-wsdl-z-adresu-urla.2

znalazłem informację, iż plik definicji usługi zawiera błąd i należy poprawić sekcję login poprzez nadpisanie pobranego kodu z pliku definicji na inny kod
czy możecie mi pomóc w jaki sposób w nadpisać?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
eMCeH
post
Post #2





Grupa: Zarejestrowani
Postów: 48
Pomógł: 1
Dołączył: 1.04.2012
Skąd: Świętokrzyskie

Ostrzeżenie: (0%)
-----


rozwiązanie tkwi chyba w samej definicji __soapCall;
zgodnie z opisem z php.net:
Kod
public mixed SoapClient::__soapCall ( string $function_name , array $arguments [, array $options [, mixed $input_headers [, array &$output_headers ]]] )

output_headers    - If supplied, this array will be filled with the headers from the SOAP response

tylko jak to zapisać?
gdy dla kodu:
  1. $parametry = ['credentials'=>
  2. [
  3. ['name'=>'domain','value'=>['stringValue'=>'15']],
  4. ['name'=>'login','value'=>['stringValue'=>$user]]
  5. ],
  6. 'password'=>$pass];

działa:
  1. $sesja = $client->login($parametry);

nie działa:
  1. $sesja = $client->__soapCall('login',$parametry);

zgłaszając błąd:
Kod
Uncaught SoapFault exception: [Client] SOAP-ERROR: Encoding: object has no 'credentials' property in...



ponieważ wątek uległ przekształceniu
jego ciąg dalszy jest:
http://forum.php.pl/index.php?showtopic=21...p;#entry1015834

Ten post edytował eMCeH 3.01.2013, 10:42:30
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 10:04