Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   HTTP Anfrage und Ergebnis XML-Datei (https://www.delphipraxis.net/165649-http-anfrage-und-ergebnis-xml-datei.html)

TheProfi 10. Jan 2012 10:03

HTTP Anfrage und Ergebnis XML-Datei
 
Moin,

da ich nicht weiss wie es geht, wollt ich mal Fragen :?: wie man es machen richtig machen sollte. :roll:
Hintergrund. Es gibt ein Programm, welches eine API über HTML zur Verfügung stellt. Man kann über einen HTML Aufruf z.B. http://<server-ip>/api/GibmirAlleSystem eine Anfrage stellen und als Ergebnis bekommt man eine XML-Datei als Download angeboten.

Nun möchte ich diese gerne automatisiert in Delphi programmieren: HTML senden, Rückgabedatei in Stringlists oder ähnliches speichern, quasi als Schnittstelle in Gewissen zeitlichen Abständen ausführen. Die XML Datei zu parsen und auszuwerten ist schon fertig.

DELPHI Radstudio 2010, DEV Express, Indy 10, TMS Componenten

Schon mal einen Dank an die Community im voraus.

Gruß Georg

Bummi 10. Jan 2012 10:33

AW: HTTP Anfrage und Ergebnis XML-Datei
 
Mit TDownloadUrl oder wie hier http://www.delphipages.com/forum/sho...d.php?t=145505 per Indy's

TheProfi 10. Jan 2012 10:34

AW: HTTP Anfrage und Ergebnis XML-Datei
 
So ich habe es gefungen... es ist einfacher als ich gedacht habe...

Aufruflink sieht so aus bei mir: http://127.0.0.0/api/table.xml?conte...assword=blabla
Delphi-Quellcode:
  cxmemo1.Lines.Text := IdHTTP1.Get(<HTTP-LINNK>);
  XMLDocument.xml.text := cxmemo1.Lines.Text;
oder direkt:

Delphi-Quellcode:
  XMLDocument.xml.text := IdHTTP1.Get(<HTTP-LINNK>);
die Nodes lese ich rekursiv aus:
Aufruf: GetXMLEntrys(XMLDocument1.DocumentElement.ChildNod es[0]);
Delphi-Quellcode:
procedure TF_Main.GetXMLEntrys(const Node:IXMLNode);
var vobjid,vdevice,vhost,vbaselink : string;
 begin
   if assigned(Node) then
   begin
     vobjid   := Node.ChildNodes['objid'].Text; //node mit namen
     vdevice  := Node.ChildNodes['device'].Text;
     vhost    := Node.ChildNodes['host'].Text;
     vbaselink := Node.ChildNodes['baselink'].Text;
     //die werte können nun hier weiterverarbeitet werden
     GetXMLEntrys(Node.NextSibling,feldname); //nächste node lesen
   end;
end;
so vielleicht hilft es jemanden weiter...


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz