CardDAV с клиентами osX / iPhone - PullRequest
       9

CardDAV с клиентами osX / iPhone

0 голосов
/ 01 апреля 2011

Я внедряю бэкэнд CardDAV в пакет crm.

Во время рукопожатия с моим бэкэндом обрабатывается следующий запрос / ответ:

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>

Это несмотря на то, что мой бэкэнд CardDAV никогда не выполнялсянамек на то, что /directory/ - это все, что нужно клиенту.

Клиент возвращает ошибку The CardDAV server returned an error (207) for the user "richo", однако, когда я установил исправление на сервере, чтобы вернуть другой код состояния (200), я получил то же самоеошибка, но с новым кодом состояния.

Я работаю над догадкой, что что-то еще расстраивает его по поводу ответа.Я пытался вернуть абсолютные, а не относительные URL (и наоборот), но безрезультатно.

Любой вклад приветствуется.На форумах Mac здесь существует похожая проблема, которая, похоже, заканчивается разрешением, но ссылки не работают.

1 Ответ

0 голосов
/ 05 апреля 2011

Как оказалось, это была проблема с пространством имен.

с использованием пространства имен urn:ietf:params:xml:ns:carddav, где это уместно, прояснилось.

...