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:
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.
<?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:
// 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:
<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.
Ähnliche Artikel:
- Wie kann die Anzahl der gerade empfangenen Flugzeuge mit DUMP1090 auf einem Raspberry Pi an ThingSpeak.com mit jq gesendet werden?
- Fritzbox Telefonbuch (Phonebook) mit Java bearbeiten via JDom und SAXBuilder
- Ecore: Wie kann ein Java Attribut für die Hibernate Suche im Ecore Modell annotiert werden?