КАЛДАВ протокол

извините за мой английский, но я француз. Я сделаю все возможное.

Мне нужно написать ВЕБ-СЕРВИС (в java с JAX-RS), чтобы преобразовать мои данные в формат icalendar. Эта часть в порядке.

Теперь я изучаю протокол caldav, чтобы использовать свой веб-сервис с Mozilla Thunderbird. Но я не могу найти какой-либо документ о том, как происходит обмен?

Какой запрос отправляется от Thunderbird для получения календаря? Мой веб-сервис должен иметь возможность перехватывать все типы (REPORT - MOVE - COPY - PUT - POST - ....)?

Мне нужно какое-то объяснение или хорошая документация о том, как работает caldav.

Большое спасибо.


person kinaesthesia    schedule 15.02.2012    source источник
comment
Теоретически RFC 4791 должен содержать все, что вам нужно знать.   -  person Julian Reschke    schedule 15.02.2012


Ответы (1)


Я думаю, что понимаю часть pop3. Если бы я объяснял кому-то IMAP4, то вместо того, чтобы указывать на RFC, я бы сказал:

telnet imap.example.org 143
A имя пользователя для входа в систему пароль
B список "" *
C выход из системы

Это необработанные команды, которые я использую для тестирования IMAP4; Какие есть для CalDAV? Что-то вроде https://github.com/alexxroche/AIF/blob/master/ISP/servers/POP3

обновить

хорошо, я думаю, что у меня есть это:

Чтобы прочитать/перечислить запись

curl -X GET --user admin:pass-phrase --output test.ics "https://api.example.com/calDAV/calNAME"

Чтобы добавить запись:

curl --basic --request PUT \\
--header "Content-Type: text/calendar; charset=utf-8" \\
--user admin:pass-phrase --data-binary @out.ics 

(Я попытался использовать несколько флагов/аргументов cURL в качестве демонстрации. Вы даже можете отправлять данные в виде строки с

curl -X PUT "https://api.url/calDAV/calNAME" \\
-F "data-binary=really-long-string" \\
-F "user=admin:pass-phrase" \\
-F "the other data=can be added like this"
person Alexx Roche    schedule 04.05.2012
comment
Если у вас нет cURL, то сработает wget of lynx/links или даже perl::LWP. Дело в том, что вам просто нужно иметь возможность создавать и отправлять HTTP-запросы, более сложные, чем вы обычно вводите в браузер (хотя, очевидно, мы должны использовать https, где это возможно). - person Alexx Roche; 18.09.2012