Portál AbcLinuxu, 5. května 2025 09:09

Dotaz: Pomoc s WSDL

19.10.2013 21:49 David Indra | skóre: 15 | Prostějov
Pomoc s WSDL
Přečteno: 380×
Odpovědět | Admin
Dobrý den, potřeboval bych pomoct. Potřebuju zařídit komunikaci mé PHP aplikace s aplikací iStravné. Bylo mi řečeno, že můžu použít SOAP - odkaz na WSDL soubor je tady. Zatím se mi podařilo zprovoznit jenom čtení jídelníčku jídelny, částečně jsem použil ukázkový kód, kterej mi poskytli, funkční ukázka co mi poslali je tato:
<HTML>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HEAD>
<TITLE>Testování PHP na IIS</TITLE>
        <META HTTP-EQUIV="Content-Type" CONTENT="text/html" charset="UTF-8">
</HEAD>
<BODY>
<?php
$client = new SoapClient('http://www.strava.cz/istravne/WSiStravnePHP/WSiStravnePHP.WSDL');
$Zarizeni='3050';
$results=$client->WSJidelnicky2('',$Zarizeni);
$jidelnicek=simplexml_load_string(iconv("UTF-8", "CP1250//TRANSLIT",$results['Result']));
// výsledkem výše (modře) uvedeného kódu je pole s názvem jídelníček, které lze adresovat pomocí indexu
// pomjidelnic_xmljidelnic[] a jmen položek datum, druh, nazev
// další zpracování jejiž jen obvyklou rutinou programátora
$dnyVtydnu=array("pondělí","úterý","středa","čtvrtek","pátek","sobota","neděle");
$pozice=0;
echo "<DIV style='font-family:sans-serif'>";
echo "Jídelní lístek pro zařízení číslo: ".$Zarizeni."\n<BR>\n";
$ukazujeNaDatum=0;
echo "<TABLE border=0>\n";
foreach ($jidelnicek as $key)
  {
    $datumRadku=htmlspecialchars($jidelnicek->pomjidelnic_xmljidelnic[$pozice]->datum);
    if ($ukazujeNaDatum!=$datumRadku)
         {
         $datum = strtotime($datumRadku);
         $den = StrFTime("%w", $datum);
         echo "\n<TR bgcolor=blue style='color:white'><TD>".$dnyVtydnu[$den-1]."  ".StrFTime("%d.%m.%Y", $datum)."</TD><TD></TD></TR>";
         $ukazujeNaDatum=htmlspecialchars($jidelnicek->pomjidelnic_xmljidelnic[$pozice]->datum);
         }
  echo "\n<TR><TD align=right>";
  echo htmlspecialchars($jidelnicek->pomjidelnic_xmljidelnic[$pozice]->druh_popis).": ";
  echo "</TD><TD>";
  echo htmlspecialchars($jidelnicek->pomjidelnic_xmljidelnic[$pozice]->nazev);
  echo "</TD></TR>";
  $pozice++;
  }
echo "\n</TABLE>";
echo "\n</DIV>";
echo "\n<br />";
?>
</BODY>
</HTML>
Ale teď absolutně nevím jak dál. Žádný manuál/dokumentace k tomu není, a se SOAPem jsem nikdy předtím nedělal. Mohl by mi prosím někdo poradit, jak dál? Mám v tom totální zmatek. Třeba když chci zavolat metodu WSStavKontaUzivatele, tak ji sice zavolám, ale nemůžu z ní nijak dostat výsledek, kterej potřebuju - stav konta..

Díky, D.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Josef Kufner avatar 20.10.2013 12:42 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Pomoc s WSDL
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jediné, co potřebuješ, je SoapClient, resp. jeho __getFunctions a __getTypes. Napiš si jednoduchý skript, který ti vypíše, co tyhle dvě metody vrátí a budeš mít "dokumentaci" hned.
Hello world ! Segmentation fault (core dumped)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.