AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi REST, web servcies und delphi
Thema durchsuchen
Ansicht
Themen-Optionen

REST, web servcies und delphi

Ein Thema von r_amse_s · begonnen am 9. Apr 2009 · letzter Beitrag vom 9. Apr 2009
Antwort Antwort
r_amse_s

Registriert seit: 31. Jul 2004
109 Beiträge
 
Delphi 11 Alexandria
 
#1

REST, web servcies und delphi

  Alt 9. Apr 2009, 00:03
hi,

ich muss ein client für folgendes web service bauen: Yahoo Traffic

hat jemand eine Idee, ob und wie man sowas in einer Delphi App einbauen kann?

finde leider keine Infos darüber und befürchte, dass z.T mit Delphi das nicht möglich ist.

danke!
liebe Grüße
ramsi
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#2

Re: REST, web servcies und delphi

  Alt 9. Apr 2009, 00:13
Zitat von r_amse_s:
hi,

ich muss ein client für folgendes web service bauen: Yahoo Traffic

hat jemand eine Idee, ob und wie man sowas in einer Delphi App einbauen kann?

finde leider keine Infos darüber und befürchte, dass z.T mit Delphi das nicht möglich ist.

danke!
Mit Indy, Synapse oder einem anderen TCP Kit deiner Wahl kann man eine HTTP Anfrage wie

http://local.yahooapis.com/MapsServi...yvale&state=CA

sicher schnell hinbekommen. Es ist ja 'nur' eine Webadresse, die mit einem GET aufgerufen wird, und daraufhin erhält der HTTP Client einen Text als Antwort zurück.

Also in der Art
Antwort := TIdHTTP1.Get(Anfrage);
Bei REST kann es neben GET auch POST u.a. Anfragetypen geben, aber es ist alles nicht so schwer wie es zuerst aussieht.
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
r_amse_s

Registriert seit: 31. Jul 2004
109 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: REST, web servcies und delphi

  Alt 9. Apr 2009, 13:44
super!
vielen Dank Justin für den Tip!

wie ich gelesen habe, ist die Antwort dann in XML. Wie kann man das am besten auslesen (parser?)?
für Hinweise auf gute Komponenten bin ich sehr dankbar!

Danke!
liebe Grüße
ramsi
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#4

Re: REST, web servcies und delphi

  Alt 9. Apr 2009, 14:13
Zitat von r_amse_s:
super!
vielen Dank Justin für den Tip!

wie ich gelesen habe, ist die Antwort dann in XML. Wie kann man das am besten auslesen (parser?)?
für Hinweise auf gute Komponenten bin ich sehr dankbar!

Danke!
In Delphi schon eingebaut ist TXmlDocument. Diser kann wahlweise den MSXML Parser verwenden, der auf den meisten PCs wohl installiert ist, aber auch auf einen anderen Parser umgestellt werden (über die Vendor-Property). Es gibt auch - ebenfalls kostenlose - Komponenten wir z.B. OmniXML.

XmlDocument ist aber schon sehr leistungsfähig. Man sollte ihn, wenn man ihn dynamisch erzeugt (zur Laufzeit, anstatt auf ein Formular geworfen), stets mit Interfaces verwenden:

Delphi-Quellcode:
var
  MeinXmlParser: IXmlDocument; // nicht: TXmlDocument
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
r_amse_s

Registriert seit: 31. Jul 2004
109 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: REST, web servcies und delphi

  Alt 9. Apr 2009, 15:07
hmmm, das Ergebnis ist leider nicht xml
wie könnte ich das parsen?

Delphi-Quellcode:
<ResultSet xsi:schemaLocation="urn:yahoo:maps http://api.local.yahoo.com/MapsService/V1/TrafficDataResponse.xsd">
<LastUpdateDate>1239226270</LastUpdateDate>

<Result type="incident">
<Title>Disabled vehicle, on I-280 SB at MAGDALENA AVE</Title>
<Description>Disabled Vehicle</Description>
<Latitude>37.351799</Latitude>
<Longitude>-122.106087</Longitude>
<Direction>SB</Direction>
<Severity>2</Severity>
<ReportDate>1239216918</ReportDate>
<UpdateDate>1239224608</UpdateDate>
<EndDate>1239226432</EndDate>
</Result>
</ResultSet>
liebe Grüße
ramsi
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#6

Re: REST, web servcies und delphi

  Alt 9. Apr 2009, 15:42
Zitat von r_amse_s:
hmmm, das Ergebnis ist leider nicht xml
wie könnte ich das parsen?

Delphi-Quellcode:
<ResultSet xsi:schemaLocation="urn:yahoo:maps http://api.local.yahoo.com/MapsService/V1/TrafficDataResponse.xsd">
<LastUpdateDate>1239226270</LastUpdateDate>

<Result type="incident">
<Title>Disabled vehicle, on I-280 SB at MAGDALENA AVE</Title>
<Description>Disabled Vehicle</Description>
<Latitude>37.351799</Latitude>
<Longitude>-122.106087</Longitude>
<Direction>SB</Direction>
<Severity>2</Severity>
<ReportDate>1239216918</ReportDate>
<UpdateDate>1239224608</UpdateDate>
<EndDate>1239226432</EndDate>
</Result>
</ResultSet>
Es ist alles da, was XML braucht, und sogar ein XSD Verweis. Was sagt denn der Parser, gibt es eine Fehlermeldung? Falls die optionale XML-Deklaration vermisst wird, kann man

<?xml version="1.0"?>

vor den Inhalt setzen. (siehe http://de.wikipedia.org/wiki/XML-Deklaration)
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
Benutzerbild von rwachtel
rwachtel

Registriert seit: 26. Aug 2004
Ort: Köln
530 Beiträge
 
RAD-Studio 2010 Pro
 
#7

Re: REST, web servcies und delphi

  Alt 9. Apr 2009, 15:55
Zitat von mjustin:
[...] Falls die optionale XML-Deklaration vermisst wird, kann man

<?xml version="1.0"?>

vor den Inhalt setzen. [...]
Selbst das liefert Yahoo! eigentlich mit.
Robert Wachtel
  Mit Zitat antworten Zitat
r_amse_s

Registriert seit: 31. Jul 2004
109 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: REST, web servcies und delphi

  Alt 9. Apr 2009, 21:09
yep, das war es

bei ersten request habe tatsächlich <?xml version="1.0"?> nicht zurückbekommen.

Danke!
liebe Grüße
ramsi
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz