首页 > 解决方案 > 用于 iCloud 的 CalDAV 客户端:MKCALEDAR 请求停止工作并因 412 Precondition Failed 而失败

问题描述

我为使用 CalDAV 协议的 iCloud 日历服务开发了一个客户端。我使用 Java 的 caldav4j 库,但是我遇到的问题与语言/库无关。几天前,在我的客户中创建新日历停止工作。现在,我412 Precondition Failed在向 iCloud 发送 MKCALENDAR 请求时得到状态码。其他操作,如获取日历资源列表、获取事件、创建和更新事件的工作方式与以前相同。

我也尝试将它卷曲并使用 Postman 发送类似的请求,结果总是相同的 - 412 Precondition Failed。我的客户发送的创建新日历的示例请求如下所示:

MKCALENDAR /xxxxxxxxxx/calendars/2321321CH34CHU35Y4UI5YVU31TIBCYTUIYBUI3 
HTTP/1.1
Host: caldav.icloud.com
Content-Type: text/xml
Authorization: Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx==
cache-control: no-cache    
<?xml version="1.0" encoding="UTF-8"?>
<C:mkcalendar xmlns:C="urn:ietf:params:xml:ns:caldav">
<D:set xmlns:D="DAV:">
    <D:prop>
        <D:displayname>new calendar</D:displayname>
        <C:calendar-description xml:lang="en">my description</C:calendar-description>
    </D:prop>
</D:set>
</C:mkcalendar>

带有 xxxxx 的部分包含我正确的主体 ID 和授权令牌。

有谁知道苹果最近有没有改变?我确定我没有更改代码中的任何内容,并且几天前像上面示例中的请求一样成功。

标签: javaicloudcaldav

解决方案


推荐阅读