我为使用CalDAV协议的iCloud日历服务开发了一个客户端。 我将caldav4j库用于Java,但是遇到的问题是语言/库无关的。 几天前,在我的客户端中创建新日历停止了工作。 现在,在将MKCALENDAR请求发送到iCloud时,我得到412 Precondition Failed ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我需要帮助。 我在我们的系统上实现了一个 CalDav 客户端,它工作起来很有吸引力。 现在我在 iCloud 上创建新日历时遇到了一些问题。 也许你们中的一些人知道我如何解决这个问题。
目前我收到 412 错误。
标题:
"Depth: 1"
"Content-Type: application/xml; charset=UTF-8"
"User-Agent: DAVKit/4.0.1 (730); CalendarStore/4.0.1 (973); iCal/4.0.1 (1374); Mac OS X/10.6.2 (10C540)"`
要求:
`MKCOL`
身体:
<D:mkcol xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
<D:set>
<D:prop>
<D:resourcetype>
<D:collection/>
<C:calendar-collection/>
</D:resourcetype>"
<D:displayname>some name</D:displayname>
</D:prop>
</D:set>
</D:mkcol>`
网址:
https://caldav.icloud.com/1722222111/calendars/64DA8FE9D95A40E4B83A45B47DEC6C53/
URL 是我的原则(我当然改变了它)和日历资源的随机生成的 UUID。
也许有人发现任何错误? 过去 6 个月前工作正常。
非常感谢!
虽然caldav.icloud.com
端点上似乎存在映射错误(如果您想参考,则将其归档为 Radar 46258347),但您首先不应该在此端点上点击/calendars
URL。
您仅使用caldav.icloud.com
来发现主体资源(代表用户/帐户)。 这包含为您的帐户托管 caldav 服务器的实际分区,它看起来像:
https://pXX-caldav.icloud.com/asdfjasdjkjfd/calendars/
这些端点似乎仍然可以正常工作(刚刚尝试过)。
那么如何从caldav.icloud.com
到实际的 CalDAV 服务器呢? 您需要检索主体的calendar-home-set
属性。
CalDAV RFC 或这个不错的指南中描述了整个过程: http : //sabre.io/dav/building-a-caldav-client/#discovery 。
如果您使用https://pXX-caldav.icloud.com/123456789/calendars/new-calendar-name-or-href/
进行MKCOL
请求,那么您将获得201 CREATED
状态,您的新收藏的 href 将是pXX-caldav.icloud.com/123456789/calendars/new-calendar-name-or-href/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.