CardDAV Server - programmatischer Zugriff (per HTTP request / WebDAV/CardDav API)

Status
Für weitere Antworten geschlossen.

TKH99

Benutzer
Mitglied seit
21. Jun 2014
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
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:

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:
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat