Benutzer-Werkzeuge

Webseiten-Werkzeuge


kommunikation:webservices:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
kommunikation:webservices:start [2024/02/18 17:15] Martin Pabstkommunikation:webservices:start [2024/02/18 17:43] (aktuell) Martin Pabst
Zeile 7: Zeile 7:
  
 ===== Einfacher HTTP-Client ===== ===== Einfacher HTTP-Client =====
 +Die Online-IDE besitzt eine einfach HTTPClient-Klasse, mithilfe derer man per HTTP kommunizieren kann. Da die Online-IDE im Browser läuft (hier auf der Seite https://learnj.de), verweigern viele Webserver den Kontakt, da sie ansonsten missbräuchlich genutzt werden könnten ([[https://en.wikipedia.org/wiki/Cross-origin_resource_sharing|CORS-Policy]]). Um das Prinzip zu demonstrieren, holen wir im folgenden Beispiel daher einfach die Webseite https://www.learnj.de.
 <HTML> <HTML>
  
Zeile 21: Zeile 22:
 // Ausgabe der Response-Header: // Ausgabe der Response-Header:
 println("\nHeader:"); println("\nHeader:");
-for (HttpHeader header : response.headers()) {+HttpHeader[] headers = response.headers()
 +for (int i = 0; i < headers.length; i++) { 
 +   HttpHeader header = headers[i];
    print(header.key + ": ", Color.lightblue);    print(header.key + ": ", Color.lightblue);
    println(header.value, Color.lightcoral);    println(header.value, Color.lightcoral);
Zeile 30: Zeile 33:
  
 </HTML> </HTML>
 +
 +===== Wetterdaten vom DWD (Deutscher Wetterdienst) =====
 +<WRAP center round info 60%>
 +Der Deutsche Wetterdienst stellt unter der URL ''https://api.open-meteo.com'' einen Webservice zur Verfügung, über den man Wettervorhersagen zu beliebigen Orten in Deutschland abrufen kann. Klicken Sie zunächst auf den Link [[https://api.open-meteo.com/v1/forecast?latitude=52.52&longitude=13.41&hourly=temperature_2m]] um die aktuellen Wetterdaten für Manching mit dem Browser abzurufen.  
 +  * a) Die Daten sind im JSON-Format encodiert. Recherchieren Sie, wie in diesem Format Objekte und Listen dargestellt werden.
 +  * b) Auf [[https://open-meteo.com/en/docs/dwd-api|open-meteo.com]] ist der Zugang zur DWD Icon API beschrieben. Recherchieren Sie, wie die JSON-Daten zu interpretieren sind. 
 +  * c) Ändern Sie den Link so ab, dass die Wetterdaten Ihres Wohnortes angezeigt werden.
 +  * d) Für Leistungsstarke: Analysieren Sie das Programm unten, das die Wetterdaten von Manching abruft und die im JSON-Format kodierten Daten mit Hilfe einer vorgegebenen Klasse (''JsonParser'') dekodiert. Suchen Sie andere frei zugängliche Webservices im Internet und schreiben Sie ein entsprechendes Programm zum Abruf der Daten. \\ [[https://www.learnj.de/doku.php?id=api:documentation:http:start|Auf dieser Seite finden Sie die Beschreibung der JsonParser-Klasse]] und [[https://www.learnj.de/doku.php?id=api:documentation:http:apis:start|auf dieser Seite Links zu weiteren freien Webservices.]]
 +</WRAP>
 +
 +<HTML>
 +
 +<div class="java-online" style="height: 400px; width: 100%;" data-java-online="{'withBottomPanel': false, 'id': 'deutscherwetterdienst'}">
 +<script type="text/plain" title="Http-Test.java">
 +HttpClient client = new HttpClient();
 +// Wetter in Manching
 +
 +HttpRequest request = new HttpRequest().uri("https://api.open-meteo.com/v1/forecast?latitude=52.52&longitude=13.41&hourly=temperature_2m");
 +
 +HttpResponse response = client.send(request);
 +
 +String json = response.body();
 +println("Daten im JSON-Format:", Color.lightblue);
 +println(json);
 +
 +JsonElement main = JsonParser.parse(json);
 +
 +JsonElement hourly = main.getAttributeValue("hourly");
 +
 +JsonElement time = hourly.getAttributeValue("time");
 +JsonElement temperature = hourly.getAttributeValue("temperature_2m");
 +
 +for (int i = 0; i < time.getArrayValues().length; i++) {
 +   print(time.getArrayValues()[i].getAsString() + ": ");
 +   println(temperature.getArrayValues()[i].getAsDouble() + "°C", Color.lightcoral);
 +}
 +</script>
 +
 +</div>
 +
 +</HTML>
 +
 +
 +
  
kommunikation/webservices/start.1708276559.txt.gz · Zuletzt geändert: 2024/02/18 17:15 von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki