AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Daten von einem offenen WebService abholen - Wie?

Daten von einem offenen WebService abholen - Wie?

Offene Frage von "torud"
Ein Thema von torud · begonnen am 24. Aug 2009 · letzter Beitrag vom 28. Aug 2009
Antwort Antwort
Seite 1 von 2  1 2   
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#1

Daten von einem offenen WebService abholen - Wie?

  Alt 24. Aug 2009, 08:22
Hallo Wissende,

ich würde gern von diesem WebService hier:

http://www.openligadb.de/Webservices/Sportsdata.asmx

Daten erhalten, weiss aber leider nicht, wie ich das in Delphi umsetzen kann. Soweit ich das verstehe, müsste ich mir wohl eine Instanz eines Webservices erzeugen und könnte dann mit den hier gebotenen Funktionen auf die abgefragten Daten zugreifen. Oder?

Könnte mir bitte jemand erklären, wie das zu machen ist?
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: Daten von einem offenen WebService abholen - Wie?

  Alt 24. Aug 2009, 08:36
Das tolle an Webservices sind doch die Beispiele

Zum Beispiel das hier: http://www.openligadb.de/Webservices...p=GetLastMatch

XML-Code:
Es folgt ein Beispiel für eine SOAP 1.1-Anforderung und -Antwort. Die angezeigten Platzhalter müssen durch tatsächliche Werte ersetzt werden.


POST /Webservices/Sportsdata.asmx HTTP/1.1
Host: [url]www.openligadb.de[/url]
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://msiggi.de/Sportsdata/Webservices/GetLastMatch"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetLastMatch xmlns="http://msiggi.de/Sportsdata/Webservices">
      <leagueShortcut>string</leagueShortcut>
    </GetLastMatch>
  </soap:Body>
</soap:Envelope>

...Antwort...
Falls du keine Webservice-Kompo findest, kannst du auch einen HTTP-POST-Request losschicken und das Ergebnis durch einen XML-Parser jagen

Wobei das - zugegeben - wahrscheinlich der steinigste Weg ist, einen Webservie anzusprechen. Selber hab' ichs aber noch nicht gemacht...

Ansonsten google mal nach Bei Google suchenwsdl delphi, vll. findet sich ja doch was für Delphi 7
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#3

Re: Daten von einem offenen WebService abholen - Wie?

  Alt 24. Aug 2009, 09:53
Hallo,

erstmal vielen Dank für Deine Antwort. Die Beispiele habe ich gesehen, aber da ich sowas noch nicht gemacht habe, weiss ich leider nichts damit anzufangen. Ich habe die Indi-Komponenten und könnte natürlich einen HTTP-Post wegschicken. Aber ich dachte, dass irgendwie einfacher machen könnte.

Mit welcher Komponente müsste ich denn anfangen? Ich brauch da wohl leider etwas Starthilfe. Sorry!
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Daten von einem offenen WebService abholen - Wie?

  Alt 24. Aug 2009, 09:58
Zitat von torud:
... Ich habe die Indi-Komponenten ...
ich weis nicht ob das verwendbaren Status hat: IndySOAP
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.004 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Daten von einem offenen WebService abholen - Wie?

  Alt 24. Aug 2009, 13:06
Zitat von torud:
Hallo Wissende,

ich würde gern von diesem WebService hier:

http://www.openligadb.de/Webservices/Sportsdata.asmx

Daten erhalten, weiss aber leider nicht, wie ich das in Delphi umsetzen kann. Soweit ich das verstehe, müsste ich mir wohl eine Instanz eines Webservices erzeugen und könnte dann mit den hier gebotenen Funktionen auf die abgefragten Daten zugreifen. Oder?

Könnte mir bitte jemand erklären, wie das zu machen ist?
Schau mal hier:

http://www.openligadb.de/Webservices...data.asmx?wsdl

Diese WSDL wird im ersten Schritt mit dem "WSDL Importer" aus Delphi verarbeitet. Ob das funktioniert, ist bei Delphi jedoch nicht hundertprozentig sicher, aber darin liegt gerade der Reiz - Im zweiten Schritt kann man den erzeugten Delphi-Code benutzen, um ein Port-Objekt zu erzeugen, dessen Methoden sich dann aufrufen lassen. Bei drbob24 und auf einigen anderen Seiten gibt es Tutorials.

Cheers,
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#6

Re: Daten von einem offenen WebService abholen - Wie?

  Alt 24. Aug 2009, 13:50
Hallo,

also über den Importer wurde mir jede Menge Code erzeugt. Jetzt muss ich nur noch herausbekommen, wie ich den anwenden/benutzen kann, um an die Daten des WebServices heranzukommen. Wenn man´s weiss, ist es sicherlich einfach. In die Uses habe ich die erzeugte Unit schon eingebunden, aber woher weiss ich nunr, wie es weiter geht? Der Anbieter kennt sich leider nicht mit Delphi aus...Es ist sicher total einfach.

drbob24.de konnte ich nicht finden...
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Daten von einem offenen WebService abholen - Wie?

  Alt 24. Aug 2009, 13:53
Ist ja auch Dr. Bob #42
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
648 Beiträge
 
Delphi 12 Athens
 
#8

Re: Daten von einem offenen WebService abholen - Wie?

  Alt 24. Aug 2009, 14:19
Zitat von torud:
also über den Importer wurde mir jede Menge Code erzeugt. Jetzt muss ich nur noch herausbekommen, wie ich den anwenden/benutzen kann, um an die Daten des WebServices heranzukommen. Wenn man´s weiss, ist es sicherlich einfach.
Ist eigentlich tatsächlich kinderleicht - es sei denn, man hat Pech und Delphi zickt rum. Wie gestern zufällig schon mal in einem anderen Thread geschrieben, hatte mir bei der Einarbeitung in Web Services mit Delphi das Tutorial vom Delphi-Treff gut weitergeholfen. Viel Glück!

Bis denn
Bommel
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#9

Re: Daten von einem offenen WebService abholen - Wie?

  Alt 27. Aug 2009, 13:16
Danke Bommel,

ich hatte früher schon mal in das Tut reingelesen, da ich eventuell vorhatte einen eigenen Webservice zu schreiben, es dann aberdoch gelassen, weil sich ein Projekt erledigt hatte.

Nun habe ich dort mal reingelesen und versucht den WebService anzusprechen, aber irgendwo mache ich noch irgendwas falsch. Die nach dem Import erhaltene pas-Datei hier zu posten würde sicher den Rahmen sprengen, da 388 Zeilen.

Folgendes mache ich derzeit, weil ich es mir so aus dem Tut hergeleitet habe.

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  Data : SportsdataSoap;
  MatchDaten : ArrayOfMatchData;
begin
  Data := GetSportsdataSoap(True,'http://www.openligadb.de/Webservices/Sportsdata.asmx?wsdl');
  Data.GetMatchdataByGroupLeagueSaison(1,'bl1','2009');

  MatchDaten := Data.GetMatchdataByGroupLeagueSaison(1,'bl1','2009');
  Showmessage(MatchDaten[0].nameTeam1);
end;

Diese Fehlermeldung erhalte ich dabei:

Im Projekt OpenLigaDB.exe ist eine Exception der Klasse ERemotableException aufgetreten. Meldung: 'Server was unable to process request. ---> Object reference not set to an instance of an object.'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.

Ich komm einfach nicht weiter. Warum ist das schwierig?
Danke
Tom
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
648 Beiträge
 
Delphi 12 Athens
 
#10

Re: Daten von einem offenen WebService abholen - Wie?

  Alt 27. Aug 2009, 13:50
Eigentlich ist es vom Grundprinzip her gar nicht so schwierig. Ich habe gerade mal ein gaaaanz einfachen Test gemacht, der auch bei dir klappen sollte:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Data : SportsdataSoap;
  MatchDaten : ArrayOfMatchData;
  leagArray: ArrayOfLeague;
begin
  Data := GetSportsdataSoap;
  leagArray:=Data.GetAvailLeagues;
  MessageDlg(intToStr(length(leagArray))+' Ligen sind vorhanden.',mtInformation,[mbOk],0);
end;
Da meldet er mir, dass er 45 Ligen gefunden hat. Diesen einfachen Test solltest du vielleicht auch mal machen. Dann siehst du schon mal (hoffentlich), dass der Web Service an sich richtig angesprochen werden kann. Alles weitere ist dann wohl "nur" noch ein Problem mit den Parametern des Befehls, den du eigentlich aufrufen willst.

Aber ich schau mal drauf, vielleicht findet sich da ja noch was...

Bis denn
Bommel
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 08:11 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