Mit Java ist es nicht schwer, einen REST Client zu erstellen. Das geht mit Jersey und JDom in 3 Zeilen.
Hier nun mal ein Beispiel.
Die Anzahl der Flugzeuge in Hannover wird von mir mit einem Raspberry Pi empfangen und an thingspeak gesendet.
Diese Daten kann jeder leicht abfragen.
Einfach die URL https://api.thingspeak.com/channels/44177/feeds/last.xml in einem Browser eingeben oder den Link anklicken. Es werden z.b. diese Daten geliefert:
1 2 3 |
2016-05-13T14:40:01Z 79194 15 |
Die 15 ist die Anzahl der Flugzeuge, die alle 5 Minuten aktualisiert wird.
Oder wenn man sich den Quelltext anschaut, sieht man dieses XML.
1 2 3 4 5 6 7 |
<?xml version="1.0" encoding="UTF-8"?> <feed> <created-at type="dateTime">2016-05-13T14:35:02Z</created-at> <entry-id type="integer">79193</entry-id> <field1>16</field1> <id type="integer" nil="true"/> </feed> |
Diese Abfrage können wir nun mit einem eigenen REST Client ausführen. Dazu nehmen wir Jersey:
1 2 3 4 5 6 7 8 |
// URL des Feeds aller Flugzeuge in Hannover von Thomas Wenzlaff. // private final static String FLUGZEUG_URL = "https://api.thingspeak.com/channels/44177/feeds/last.xml"; String result = ClientBuilder.newClient().target(FLUGZEUG_URL).request().get(String.class); String field1 = new SAXBuilder().build(new StringReader(result)).getDocument().getRootElement().getChild("field1").getText(); System.out.println("Aktuelle Anzahl Flugzeuge in Langenhagen: " + field1); |
Folgende Maven Abhängigkeiten brauchen wir noch:
1 2 3 4 5 6 7 8 9 10 11 12 |
<dependencies> <dependency> <groupId>org.glassfish.jersey.core</groupId> <artifactId>jersey-client</artifactId> <version>2.21</version> </dependency> <dependency> <groupId>org.jdom</groupId> <artifactId>jdom2</artifactId> <version>2.0.6</version> </dependency> </dependencies> |
Das alles kann in ein paar Minuten implementiert werden. Wer das ganze Projekt laden möchte, kann es bei Github laden bzw. anschauen.