我为使用CalDAV协议的iCloud日历服务开发了一个客户端。我将caldav4j库用于Java,但是遇到的问题是语言/库无关的。
几天前,在我的客户端中创建新日历停止了工作。现在,在将MKCALENDAR请求发送到iCloud时,我得到412 Precondition Failed
状态代码。其他操作,例如获取日历资源列表,获取事件,创建和更新事件,与以前一样。
我也尝试对其进行CURL处理,并使用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和授权令牌。
有人知道苹果最近是否在这里进行了更改?我确定我没有更改代码中的任何内容,而几天前的示例中的请求也成功完成了。