Hallo,
nachdem ich den Synology CardDAV Server erfolgreich zum Laufen gebracht habe und die Synchronisation mit Thunderbird und dem Android Smartphone per DAVDroid bisher reibungslos funktioniert, würde ich gerne mit einem kleinen Programm Daten aus dem Server zum Abgleich mit einem nicht CardDAV fähigen Telefonbuch (wie z.B. Fritz!box) auslesen.
Bin kein (professioneller) Programmierer, aber dachte vielleicht bekomme ich das hin. Leitfaden der mir geholfen hat war http://sabre.io/dav/building-a-carddav-client/. Basic Authenfizierung und einen GET Request absetzten funktioniert auch, aber an den PROPFIND und REPORT Methoden, die ich jetzt wohl bräuchte, scheitere ich. Der GET request liefert mir ein directory Listing der Collection zurück und zeigt die unterschiedlichen properties die unterstützt werden - dazu gehören auch PROPFIND und REPORT. Wenn ich diese absetze bekomme ich aber HTTP 400 Bad Request.
Hier der Code-Schnipsel:
und die Response
Wäre schön wenn mir jemand der sich damit wirklich auskennt helfen könnte.
Danke
Thomas
nachdem ich den Synology CardDAV Server erfolgreich zum Laufen gebracht habe und die Synchronisation mit Thunderbird und dem Android Smartphone per DAVDroid bisher reibungslos funktioniert, würde ich gerne mit einem kleinen Programm Daten aus dem Server zum Abgleich mit einem nicht CardDAV fähigen Telefonbuch (wie z.B. Fritz!box) auslesen.
Bin kein (professioneller) Programmierer, aber dachte vielleicht bekomme ich das hin. Leitfaden der mir geholfen hat war http://sabre.io/dav/building-a-carddav-client/. Basic Authenfizierung und einen GET Request absetzten funktioniert auch, aber an den PROPFIND und REPORT Methoden, die ich jetzt wohl bräuchte, scheitere ich. Der GET request liefert mir ein directory Listing der Collection zurück und zeigt die unterschiedlichen properties die unterstützt werden - dazu gehören auch PROPFIND und REPORT. Wenn ich diese absetze bekomme ich aber HTTP 400 Bad Request.
Hier der Code-Schnipsel:
Rich (BBCode):
out.println("REPORT /addressbooks/users/thomas/addressbook/ HTTP/1.1");
out.println("Host: " + host);
out.println("Authorization: Basic " + pwd);
out.println("Depth: 1");
out.println("Content-Type: application/xml; charset=utf-8");
out.println("<card:addressbook-query xmlns:d=\"DAV:\" xmlns:card=\"urn:ietf:params:xml:ns:carddav\">");
out.println(" <d:prop>");
out.println(" <d:getetag />");
out.println(" <card:address-data />");
out.println(" </d:prop>");
out.println("</card:addressbook-query>");
out.println(); // blank line separating header & body
out.flush();
und die Response
HTML:
HTTP/1.1 400 Bad Request
Content-Type: text/html;charset=utf-8
Server: Twisted/13.0.0 TwistedWeb/9.0.0
Content-Length: 128
Date: Tue, 12 Dec 2017 17:30:02 GMT
DAV: 1, access-control, addressbook, extended-mkcol, calendarserver-principal-property-search, calendarserver-principal-search, calendarserver-home-sync
Connection: close
<html><head><title>Bad Request</title></head><body><h1>Bad Request</h1><p>REPORT request body may not be empty</p></body></html>
Wäre schön wenn mir jemand der sich damit wirklich auskennt helfen könnte.
Danke
Thomas
Zuletzt bearbeitet: