Beschreibung
Das folgende Java-Programm verwendet die Apache http-Klient Bibliothek um mit der API von stattbuchung.de zu kommunizieren. nach dem Aufbau der Verbindung wird die Liste der verfügbaren Kalender geholt. Dann werden alle Kalendereinträge geladen, die zu Kalenderarten gehören, die standardmäßig sichtbar sind und die zwischen einem Monat in der Vergangenheit und einem Jahr in der Zukunft liegen.
Code der Klasse
package systems.sdw.statt; import java.util.ArrayList; import java.util.Calendar; import java.util.List; import java.util.Properties; import org.apache.http.NameValuePair; import org.apache.http.message.BasicNameValuePair; import org.json.JSONObject; import systems.sdw.generic.Exceptions; import systems.sdw.statt.util.Client; import systems.sdw.statt.util.Converter; public class Kalender { private static final String opcGetKalenderliste="255001"; private static final String opcGetEventCalendarItems="255115"; public static void main(String[] args) { props.setProperty(Client.propServer, "stattbuchung.de"); props.setProperty(Client.propScheme, "https"); props.setProperty(Client.propPort, "443"); props.setProperty(Client.propLogin, "?"); props.setProperty(Client.propPassword, "?"); Client client=new Client(props); try { if (client.connect()) { System.out.println("Connect OK"); // // Einfachstes Beispiel: Unparametrisierter GET-Aufruf JSONObject kalenderListe=client.get(opcGetKalenderliste); System.out.println(kalenderListe.toString(2)); // Jetzt die Kalendereinträge holen. Es sollen alle Kalender geholt werden, die defaultmäßig visible==true // in der Kalenderlisze voreingestellt haben. Wir wollen einen Monat zurück und 1 Jahr in die Zukunft gehen. // 1 Monat zurück Calendar von=Calendar.getInstance(); von.set(Calendar.MONTH, von.get(Calendar.MONTH)-1); // 1 Jahr nach vorn Calendar bis=Calendar.getInstance(); bis.set(Calendar.YEAR, bis.get(Calendar.YEAR)+1); // Zähler für die Anzahl Kalender, die visible=true haben int count=0; // Beispiel als GET-Aufruf mit Parametern: Liste der Kalendereinträge List<NameValuePair> nvps=new ArrayList <NameValuePair>(); nvps.add(new BasicNameValuePair("von", Converter.Timestamp2ISO8601String(von))); nvps.add(new BasicNameValuePair("bis", Converter.Timestamp2ISO8601String(bis))); for (int i=0; i<=kalenderListe.getJSONArray("items").length()-1; i++) { JSONObject item=kalenderListe.getJSONArray("items").getJSONObject(i); if (item.getBoolean("visible")==true) { nvps.add(new BasicNameValuePair("oidItem["+(count++)+"]", new Long(item.getLong("oid")).toString())); } } nvps.add(new BasicNameValuePair("itemCount", new Integer(count).toString())); JSONObject getResponse1=client.get(opcGetEventCalendarItems, nvps); System.out.println(getResponse1.toString(2)); // WICHTIG: Session schließen client.disconnect(); } } catch (Exceptions.NoSessionAvailableException e) { System.out.println(e.getText()); } catch (Exceptions.WrongParamException e) { System.out.println(e.getText()); } catch (Exception e) { e.printStackTrace(); } } }
Add Comment