Hi Helge,
vielen Dank für die schnelle Antwort.
wird der Content-Type hier korrekt auf XML gesetzt, oder liefert der
Server das XML als text/plain aus?
Habe den Content-Type explizit auf text/xml gesetzt, iCal zeigt aber
dennoch das gleiche verhalten.
Möglicherweise macht iCal die Verbindung sofort zu, wenn es erkennt,
dass es mit dem Content nichts anfangen kann.
Dann müsste iCal aber auch die Verbindung schließen, wenn es einen
200er Status bekommt, da sich die Daten ja nicht ändern, oder?
Ich bin mir außerdem nicht sicher, warum iCal den Response Body parsen
sollte, bevor dieser vollständig ist.
Hatte vor geraumer Zeit ein ähnliches Szenario aufgebaut, allerdings
nicht mit PROPFIND und iCal, sondern per GET mit Firefox.
Auch hier wurde die Verbindung beendet, bevor die Ãœbertragung zu Ende
war.
Den Body konnte der Browser dann darstellen, aber die Header
Informationen waren teilweise nicht vorhanden.
Am besten du schickst mal den Dump vom HTTP Traffic zwischen
iCal und deinem Server.
Fall 1
(iCal + Apple CalendarServer )
REQUEST
Method: PROPFIND
URL: http://localhost:8008/principals/users/admin/
Headers:
User-Agent: DAVKit/3.0.6 (661); CalendarStore/3.0.7 (858); iCal/3.0.7
(1284); Mac OS X/10.5.7 (9J61)
Host: localhost:8008
Depth: 0
Authorization: Digest username=“admin”, realm=“Test Realm”,
nonce=“100045035610880960381959273727”, uri=“/principals/users/
admin/”, response=“65720e9b3f2c6cf498b8c29e452b62a9”, algorithm=“md5”
Content-Type: text/xml
Content-Length: 374
Connection: keep-alive
Post Data:
<?xml version="1.0" encoding="utf-8"?>
<x0:propfind xmlns:x2=“Calendar and Contacts Server”
xmlns:x1="urn:ietf:params:xml:ns:caldav
" xmlns:x0=“DAV:”>
x0:prop
x1:calendar-home-set/
x1:calendar-user-address-set/
x1:schedule-inbox-URL/
x1:schedule-outbox-URL/
x2:dropbox-home-URL/
x2:notifications-URL/
x0:displayname/
</x0:prop>
</x0:propfind>
RESPONSE
Headers:
Accept-Ranges: bytes
Server: Twisted/2.5.0+rUnknown TwistedWeb/[twisted.web2, version 0.2.0
(SVN rUnknown)]
DAV: 1, access-control, calendar-access, calendar-schedule, calendar-
auto-schedule, calendar-availability, inbox-availability, calendar-
proxy, calendarserver-private-events, calendarserver-private-comments,
calendarserver-principal-property-search
Content-Length: 1762
Date: Sun, 28 Jun 2009 12:07:41 GMT
Content-Type: text/xml
Last-Modified: Fri, 26 Jun 2009 16:37:35 GMT
Body:
<?xml version='1.0' encoding='UTF-8'?>
/principals/users/admin/
/calendars/__uids__/admin
urn:uuid:admin
http://Aton:8008/principals/__uids__/admin/
http://Aton:8008/principals/users/admin/
https://Aton:8443/principals/__uids__/admin/
/principals/users/admin/
https://Aton:8443/principals/users/admin/
/principals/__uids__/admin/
/calendars/__uids__/admin/inbox/
/calendars/__uids__/admin/outbox/
/calendars/__uids__/admin/dropbox/
Super User
HTTP/1.1 200 OK
HTTP/1.1 404 Not Found
Fall 2
(iCal + Rails )
REQUEST
Method: PROPFIND
URL: http://localhost:8008/principals/users/admin/
Headers:
User-Agent: DAVKit/3.0.6 (661); CalendarStore/3.0.7 (858); iCal/3.0.7
(1284); Mac OS X/10.5.7 (9J61)
Content-Type: text/xml
Host: localhost:3000
Depth: 0
Content-Length: 374
Connection: close
Post Data:
<?xml version="1.0" encoding="utf-8"?>
<x0:propfind xmlns:x2=“Calendar and Contacts Server”
xmlns:x1="urn:ietf:params:xml:ns:caldav
" xmlns:x0=“DAV:”>
x0:prop
x1:calendar-home-set/
x1:calendar-user-address-set/
x1:schedule-inbox-URL/
x1:schedule-outbox-URL/
x2:dropbox-home-URL/
x2:notifications-URL/
x0:displayname/
</x0:prop>
</x0:propfind>
RESPONSE
Closed by peer
Habe mit Packet Peeper noch 2 TCP Dumps gemacht und diese angehängt.
Die Dateien sollten sich aber auch mit ireshark öffnen lassen.
Könnte es sein, dass Rails einen Bug hat, der beim 207er Status die
Verbindung unterbricht, bevor die Antwort gesendet wurde?
Gruß
Matthias