2011-04-01 3 views
0

J'implémente un backend CardDAV dans un paquet crm.CardDAV avec les clients OSX/iPhone

Au cours de la poignée de main avec mon back-end la demande/réponse suivante est gérée:

PROPFIND /directory/ HTTP/1.1 
Host: 10.0.0.202:9292 
User-Agent: Address%20Book/883 CFNetwork/454.11.12 Darwin/10.7.0 (i386) (MacBookPro4%2C1) 
Content-Type: text/xml; charset=utf-8 
Depth: 0 
Accept: */* 
Accept-Language: en-us 
Accept-Encoding: gzip, deflate 
Content-Length: 147 
Connection: keep-alive 

<?xml version="1.0" encoding="utf-8"?> 
<D:propfind xmlns:D="DAV:" xmlns:C="DAV:"> 
<D:prop> 
<C:current-user-privilege-set/> 
</D:prop> 
</D:propfind> 
HTTP/1.1 207 
Content-Type: text/xml; charset="utf-8" 
Content-Length: 432 
Connection: keep-alive 
Server: thin 1.2.11 codename Bat-Shit Crazy 

<?xml version="1.0" encoding="UTF-8"?> 
<D:multistatus xmlns:D="DAV:"> 
    <D:response> 
    <D:href>http://10.0.0.202:9292/directory/</D:href> 
    <D:propstat> 
     <D:prop> 
     <D:current-user-privilege-set> 
      <D:privilege> 
      <D:read/> 
      </D:privilege> 
     </D:current-user-privilege-set> 
     </D:prop> 
     <D:status>HTTP/1.1 200 OK</D:status> 
    </D:propstat> 
    </D:response> 
</D:multistatus> 
PROPFIND /contacts/ HTTP/1.1 
Host: 10.0.0.202:9292 
User-Agent: Address%20Book/883 CFNetwork/454.11.12 Darwin/10.7.0 (i386) (MacBookPro4%2C1) 
Content-Type: text/xml; charset=utf-8 
Depth: 0 
Accept: */* 
Accept-Language: en-us 
Accept-Encoding: gzip, deflate 
Content-Length: 167 
Connection: keep-alive 

<?xml version="1.0" encoding="utf-8"?> 
<D:propfind xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:carddav"> 
<D:prop> 
<C:addressbook-home-set/> 
</D:prop> 
</D:propfind> 
HTTP/1.1 207 
Content-Type: text/xml; charset="utf-8" 
Content-Length: 408 
Connection: keep-alive 
Server: thin 1.2.11 codename Bat-Shit Crazy 

<?xml version="1.0" encoding="UTF-8"?> 
<D:multistatus xmlns:D="DAV:"> 
    <D:response> 
    <D:href>http://10.0.0.202:9292/contacts/</D:href> 
    <D:propstat> 
     <D:prop> 
     <D:addressbook-home-set> 
      <D:href>http://10.0.0.202:9292/contacts/</D:href> 
     </D:addressbook-home-set> 
     </D:prop> 
     <D:status>HTTP/1.1 200 OK</D:status> 
    </D:propstat> 
    </D:response> 
</D:multistatus> 

Ceci malgré mon back-end CardDAV ne laissant entendre que /directory/ est quelque chose que le client à se préoccuper des.

Le client renvoie l'erreur The CardDAV server returned an error (207) for the user "richo", cependant lorsque j'ai patché le serveur pour retourner un code d'état différent (200) j'ai eu la même erreur, mais avec un nouveau code d'état. Je travaille sur l'intuition que quelque chose d'autre bouleverse la réponse. J'ai essayé de renvoyer absolu au lieu des URL relatives (et vice versa) en vain.

Toute saisie appréciée. Il y a un problème similaire sur les forums mac here qui semble se terminer par une résolution mais les liens sont rompus.

Répondre

0

Il s'est avéré que c'était un problème d'espace de noms. L'utilisation de l'espace de noms urn:ietf:params:xml:ns:carddav le cas échéant l'a effacé.

Questions connexes