2011-04-01 3 views
0

crm 패키지에 CardDAV 백엔드를 구현하고 있습니다. 내 백엔드 핸드 쉐이크 동안 osX/iPhone 클라이언트가있는 CardDAV

는 다음과 같은 요청/응답 처리됩니다

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> 

이 결코 /directory/는 클라이언트와 관심 자체를 필요로 어떤 것을 암시하지 내 CardDAV를 백엔드에도 불구하고있다.

클라이언트가 The CardDAV server returned an error (207) for the user "richo" 오류를 반환하지만 다른 상태 코드 (200)를 반환하도록 서버를 패치 할 때 동일한 오류가 발생하지만 새로운 상태 코드가 표시됩니다.

저는 뭔가 다른 것이 응답에 대해 혼란스러워하고 있습니다. 상대 URL 대신 절대 URL을 반환하려고했는데 반대의 경우도 마찬가지입니다.

모든 의견을 감사드립니다. 해결 방법으로 끝나는 것처럼 보이는 mac 포럼의 here에도 비슷한 문제가 있지만 링크가 깨졌습니다.

답변

0

밝혀졌지만 이름 공간 문제였습니다.

urn:ietf:params:xml:ns:carddav 네임 스페이스를 적절히 사용하면됩니다.

관련 문제