Forum Delphi.cz

Delphi => Obecné => Téma založeno: leonell 12-06-2012, 14:15:47

Název: ARES s pomocí WSDL
Přispěvatel: leonell 12-06-2012, 14:15:47
Zdravím,
docela rád bych komunikoval s ARES a tak jsem si vygeneroval přes WSDL Importer (D XE2) příslušnou podporu.
Následující kód mi oproti mým předpokladům  :) vrací chybu "chyba overeni validity dokumentu".
Já to sice umím obejít přes GET HTTP a pak rozparsování vráceného XML ale radši bych rozchodil tohle.

Za rady děkuji předem.
L.

Kód: Delphi [Vybrat]
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var
  3.  komunikace: HttpSoapStandard;
  4.  vstup: Ares_dotazy;
  5.  vystup: Ares_odpovedi;
  6.  pole_dotazu : Array_Of_dotaz;
  7. begin
  8.  komunikace := GetHttpSoapStandard();
  9.  vstup := Ares_dotazy.Create();
  10.  vstup.dotaz_datum_cas := TXSDateTime.Create();
  11.  vstup.dotaz_datum_cas.AsDateTime := now;
  12.  vstup.dotaz_pocet := 1;
  13.  vstup.dotaz_typ := ares_dotaz_typ.Standard;
  14.  vstup.vystup_format := vystup_format.XML;
  15.  vstup.validation_XSLT := 'http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_request/v_1.0.0/ares_request.xsl';
  16.  vstup.user_mail := 'ja@firma.cz';
  17.  vstup.answerNamespaceRequired := 'http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_answer/v_1.0.1';
  18.  vstup.Id := 'ARES dotaz';
  19.  SetLength( pole_dotazu, vstup.dotaz_pocet );
  20.  vstup.Dotaz := pole_dotazu;
  21.  vstup.Dotaz[0] := Dotaz.Create();
  22.  vstup.Dotaz[0].Pomocne_ID := 1;
  23.  vstup.Dotaz[0].Max_pocet := 10;
  24.  vstup.Dotaz[0].Typ_vyhledani := ares_vyber_typ.FREE;
  25.  vstup.Dotaz[0].Klicove_polozky := klicove_polozky.Create();
  26.  vstup.Dotaz[0].Klicove_polozky.ICO := '45317054';
  27.  vystup := komunikace.GetXmlFile( vstup);
  28. end;
  29.  
Název: Re:ARES s pomocí WSDL
Přispěvatel: zdenek 12-06-2012, 16:05:16
Taky kolega bojoval. Nakonec jsme museli vzít za vděk HTTP Get a pak XML parser. WSDL aresu používá některé typy, které Delphi nemají (testováno na 2007 a částečně na XE2).
Název: Re:ARES s pomocí WSDL
Přispěvatel: bohdan 12-06-2012, 16:29:57
Taky jsme to zkoušeli přes WDSL v DelphiXE2 a taky bez úspěchu. Nakonec get http a synapse.
Název: Re:ARES s pomocí WSDL
Přispěvatel: pepak 12-06-2012, 19:44:29
To je docela zvláštní, já jsem prostě v Delphi 2009 naimportoval WSDL, vytvořil obdobu Button1Click výše, spustil a hned to jelo. Je fakt, že používám jen úplně základní funkčnost (vyhledání podle IČO, jen jedna položka), ale fungovalo mi to skoro doslova out-of-the-box.
Název: Re:ARES s pomocí WSDL
Přispěvatel: leonell 13-06-2012, 10:34:10
Tak jsem na to poštval Fiddler a zdá se, že problém je v používání Namespaces, jak je generuje ten wrapper v Delphi, respektive spíš neakceptuje druhá strana, která striktně vyžaduje "svůj" způsob.
Přes WSDL mám už VIES (ověření DPH), tak jsem to chtěl mít stejnou koncepcí. Nedá se holt nic dělat.

PEPÁK: nenašel bys kousek? On bude zakopaný pes spíše na té vygenerované straně, ale co kdyby přeci jenom...