Anwendungsbeispiel
Das Beispiel demonstriert die Auswertung einer Web-Seite.
Die URL für den Abruf könnte bspw. http://www.example.net/wetter.php?plz=12345 lauten.
Als Antwort würde der Web-Server eine HTML-Seite mit Wetterdaten liefern.
Der gesamte Datenverkehr enthält dann z.B. folgende Daten:
-- SENDEN: --
GET /wetter.php?plz=12345 HTTP/1.1
Host: www.example.net
Connection: Close
-- EMPFANG: --
HTTP/1.1 200 OK
Content-Type: text/html
Connection: Close
<html>
<body>
<h1>Aktuelle Wetterdaten für Musterhausen!<h1>
<table border="1">
<tr>
<td>Temperatur:</td><td>15 °C</td>
</tr>
<tr>
<td>Windrichtung:</td><td>Norden</td>
</tr>
</table>
</body>
</html>
-- ENDE --
Die angebene URL existiert nicht. Die angegebenen Daten dienen nur als Beispiel.
Folgende Daten müssen im HS/FS-Experte definiert werden:
1. Allgemeine Daten
Im Registerreiter "Daten" müssten folgende Einstellungen getätigt werden:
Bezeichnung: frei wählbar
Host: www.example.net
IP-Port: 80
2. Die Abfrage senden
Im Registerreiter
"Senden" gibt es zwei Möglichkeiten, eine Abfrage zu senden.
Zum einen kann die Option "HTTP-Abruf senden" gewählt werden, hier generiert der HS/FS-Experte beim übertragen automatisch die nötigen Datenblöcke.
Die Datenblöcke müssen somit nicht selbst definiert werden. Allerdingswäre in diesem Fall die PLZ fix:
- URL (nur Pfad): /wetter.php?plz=12345
Desweiteren können auch die nötigen Datenblöcke selbst definert werden, in diesem Fall kann eine dynamische PLZ gesendet werden:
- Block 1
Typ: Text
Freier Text: GET /wetter.php?plz=
- Block 2
Typ: Wert als Klartext
Kommunikationsobjekt welches die gewünschte PLZ enthält
URL-Quoting anwenden aktivieren
- Block 3
Typ: Text
Freier Text: HTTP/1.1
Die Felder CR anhängen und LF anhängen müssen aktiviert sein. Vor HTTP muss ein Leerzeichen stehen. Erklärung: Mittels eines sogenannten GET-Befehls wird die Gegenstelle davon unterrichtet, welche Datei abgerufen werden soll. Da nicht nur der Dateiname sondern auch Parameter übergeben werden, muss die erste Zeile des HTTP-Kommandos auf mehrere Datenblöcke aufgeteilt werden.
- Block 4
Typ: Text
Freier Text: Hostname: www.example.net
Die Felder CR anhängen und LF anhängen müssen aktiviert sein.
Erklärung: Der Gegenstelle muss ebenfalls mitgeteilt werden, unter welcher Adresse man die Datei heruntergeladen hat.
- Block 5
Typ: Text
Freier Text: Connection: Close
Die Felder CR anhängen und LF anhängen müssen aktiviert sein.
Erklärung: Die Gegenstelle möchte wissen, ob nach dem Senden der Daten die Verbindung offen gehalten werden soll.
- Block 6
Typ: Text
Freier Text:
Die Felder CR anhängen und LF anhängen müssen aktiviert sein.
Erklärung: Zum Abschluss der Abfrage muss eine Leerzeile gesendet werden.
Hinweis: Jeder Datenblock muss mit CR und LF abgeschlossen werden.
3. Die Antwort empfangen und auswerten
Im Registerreiter
"Empfangen" müssten dann folgende Datenblöcke definiert werden:
- Block 1
Typ: Beliebige Anzahl an Daten
Erklärung: Die ersten Daten sind für die Auswertung nicht von Bedeutung, daher können diese ignoriert werden.
- Block 2
Typ: Text
Wert:<td>Temperatur:</td><td>
Erklärung: Dieser Block dient zur Erkennung der Temperatur.
- Block 3
Typ: Wert als Klartext
Kommunikationsobjekt für die aktuelle Temperatur
Erklärung: Nach "Block 2" wird die Temperatur erwartet, alles bis zum nächsten Block wird in das Kommunikationsobjekt geschrieben.
- Block 4
Typ: Text
Wert: °C</td>
Erklärung: Mit diesem Block ist das Ende des Wertes erreicht. Alle Daten zwischen "Block 2" und "Block 4" werden als Temperatur erkannt. Leerzeichen, Tabulatoren und Zeilenumbrüche werden entfernt.
- Block 5
Typ: Beliebige Anzahl an Daten
Erklärung: Die folgenden Daten sind für die Auswertung wieder nicht von Bedeutung und können daher ignoriert werden.
- Block 6
Typ: Text
Wert: Windrichtung:</td><td>
Erklärung: Dieser Block dient zur Erkennung der Windrichtung.
- Block 7
Typ: Text aus einer vordefinierten Liste
Liste: #Norden#Osten#Süden#Westen#
Erklärung: siehe Block 8
- Block 8
Typ: Text
Wert: </td>
Erklärung: Hier endet die Erkennung für Block 7. Der erkannte Wert zwischen "Block 6" und "Block 8" (in diesem Beispiel "Norden") wird in der in Block 7 definierten Liste gesucht. Der Wert befindet sich innerhalb der Liste an Position 1, daher wird in das Kommunikationsobjekt der Wert 1 geschrieben.
- Fertig!
Verarbeitung beendet. Nun werden die Befehle für eine erfolgreiche Verarbeitung ausgeführt.