Webservice aufrufen in C
-
Hallo,
ich muss ein C-Programm schreiben, welches einen Webservice aufruft. Kann mir jemand sagen oder zumindest einen Tip geben wie ich diesen innerhalb eines Programms aufrufe?
Danke
-
Ich denke mit Webservice meinst du ein bestimmte Internetseite oder?
Wenn dies der Fall ist brauchst du Sockets und musst das HTTP verstehen.Sockets: hxxp://www.c-worker.ch/ (das Windoff Tutorial ist gut für Linux muss du mal bei Google gucken, das war so eine grüne Seite... hxxp://www.pronix.de/pronix-25.html <- das ist auch für Linux habe ich aber nicht getestet.)
HTTP: hxxp://de.wikipedia.org/wiki/Hypertext_Transfer_ProtocolMfG _D4rk_
-
Also für das, was ich unter Web-Service verstehe, ist das gar nicht so unkompliziert. Guck mal, was Wikipedia zu den verwendeten Protokollen sagt. Du musst glaubich ein paar XML-Dateien hin- und herschicken
-
Letztendlich, hast du schon recht, wenn du sagst, das man "nur" ein paar XML-Dateien hin und her schicken muss. Leider macht muss dort aber noch mehr gemacht werden.
Soviel ich weiß, ähnelt das ganze einem RPC(Remote Procedure Call). Ich möchte jetzt die Clientseite implementieren.
Hierzu werden vereinfacht gesagt folgende Schritte durchgeführt:1. Verbindung zu einer Quelle aufbauen (übers Internet)
2. Eine .wsdl-Datei von der Quelle holen mittels SOAP die in einem XML-Format geschrieben ist und den Webservice, sowie die enthaltenen Funktionen und deren Zugriff beschreibt.
3. Der Client erstellt nun aus dieser Datei eine Art lokales "Skelett"
4. Nun existert auf dem loaklen Recher eine Funktion die das selbe macht wie der Web Service. Auf diese Funktion kann nun das eigentliche Programm zugreifen als wäre Sie lokal.
5.Was eigentlich passiert ist dann folgendes: Das Programm übergibt die akt. Parameter an das "Skelett" des WS diese werden dann in ein XML-Format verpackt und per SOAP an den "richtigen" WS auf dem entfernten Rechner geschickt.
6 Dieser Packt das XML-Dokument aus, startet nun den Webservice mit den akt. Parametern und verpackt das Ergebniss wieder in ein XML-Format
7. Dieses wird wieder zurück zum WS-Skelett des Clienten geschickt, der Pakt dieses aus und gibt das Ergebniss zurück.Damit merkt das Programm welches den Webservice aufruft garnicht, das die bearbeitung der funktion nicht lokal geschieht.
Für dieses Problem möchte ich nun die Clientseite implementieren und hoffe, das jemand das schon mal gemacht hat und mir entsprechende hilfe zukommen lassen kann.
-
Hoffe das könnte dir helfen
http://www.codeproject.com/webservices/
http://www.systinet.com/download/ssc_tutorial1.pdf