api:documentation:http:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
api:documentation:http:start [2023/04/02 10:01] – Martin Pabst | api:documentation:http:start [2023/04/02 13:36] – [Http-Requests] Martin Pabst | ||
---|---|---|---|
Zeile 6: | Zeile 6: | ||
**Beschränkung durch die Same-Origin-Policy der Server** \\ \\ | **Beschränkung durch die Same-Origin-Policy der Server** \\ \\ | ||
Da die Online-IDE im Browser läuft, werden die http(s)-Requests aus der Webseite heraus per [[https:// | Da die Online-IDE im Browser läuft, werden die http(s)-Requests aus der Webseite heraus per [[https:// | ||
+ | **Sammlung freier offener APIs** \\ | ||
+ | Es ist gar nicht so einfach, gute freie APIs für den Unterricht zu finden. Daher [[.apis: | ||
+ | Falls Sie selbst eine gute, freie, von der Online-IDE aus erreichbare API kennen, die noch nicht in dieser Sammlung enthalten ist, würde ich mich über einen Tipp von Ihnen freuen! | ||
</ | </ | ||
+ | ===== Durchschnittseinkommen in den USA nach Branche ===== | ||
+ | Viele Daten über die USA erhält man auf der Seite [[https:// | ||
+ | |||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | <script type=" | ||
+ | HttpClient client = new HttpClient(); | ||
+ | HttpRequest request = new HttpRequest(); | ||
+ | request.uri(" | ||
+ | |||
+ | HttpResponse response = client.send(request); | ||
+ | println(response.body()); | ||
+ | |||
+ | println(" | ||
+ | // Ausgabe der Response-Header: | ||
+ | println(" | ||
+ | for (HttpHeader header : response.headers()) { | ||
+ | | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== URL-Encoding ===== | ||
+ | <WRAP center round info 80%> | ||
+ | Gemäß [[https:// | ||
+ | < | ||
+ | measure=Average Wage, | ||
+ | </ | ||
+ | muss man also schreiben: | ||
+ | < | ||
+ | measure=Average%20Wage, | ||
+ | </ | ||
+ | Damit wir diese Enkodierung nicht von Hand erledigen müssen, gibt es die Klasse '' | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | <script type=" | ||
+ | HttpClient client = new HttpClient(); | ||
+ | HttpRequest request = new HttpRequest(); | ||
+ | |||
+ | String parameter = URLEncoder.encode(" | ||
+ | request.uri(" | ||
+ | |||
+ | HttpResponse response = client.send(request); | ||
+ | println(response.body()); | ||
+ | |||
+ | println(" | ||
+ | // Ausgabe der Response-Header: | ||
+ | println(" | ||
+ | for (HttpHeader header : response.headers()) { | ||
+ | | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== Aufbereiten der Json-Daten (JsonParser) ===== | ||
+ | Die Ausgabe liegt im Json-Format vor. Zum Aufbereiten nutzen wir die JsonParser-Klasse der Online-IDE. Sie konvertiert die Json-Zeichenkette in einen Objektbaum. Wir betrachten zunächst den Beginn der Zeichenkette: | ||
+ | <code javascript> | ||
+ | {" | ||
+ | [ | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | usw... | ||
+ | </ | ||
+ | Die führende öffnende geschweifte Klammer (' | ||
+ | |||
+ | <WRAP center round info 100%> | ||
+ | Wir wollen uns von all diesen Objekten nur die Werte der Attribute '" | ||
+ | * '' | ||
+ | * Ist der Knoten ein Objekt (Typ '' | ||
+ | * Ist der Knoten ein Array (Typ '' | ||
+ | * Ist der Knoten ein String-Wert, | ||
+ | </ | ||
+ | |||
+ | |||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | <script type=" | ||
+ | HttpClient client = new HttpClient(); | ||
+ | HttpRequest request = new HttpRequest(); | ||
+ | request.uri(" | ||
+ | |||
+ | HttpResponse response = client.send(request); | ||
+ | |||
+ | JsonElement rootElement = JsonParser.parse(response.body()); | ||
+ | JsonElement data = rootElement.getAttributeValue(" | ||
+ | |||
+ | for (JsonElement row : data.getArrayValues()) { | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ |
api/documentation/http/start.txt · Zuletzt geändert: 2023/04/16 08:26 von Martin Pabst