Я разработал клиент для службы календаря iCloud, который использует протокол CalDAV.Я использую библиотеку caldav4j для Java, однако проблема, с которой я столкнулся, не зависит от языка / библиотеки.Несколько дней назад перестало работать создание новых календарей в моем клиенте.Теперь я получаю код состояния 412 Precondition Failed
при отправке запросов MKCALENDAR в iCloud.Другие операции, такие как получение списка ресурсов календаря, получение событий, создание и обновление событий, работают так же, как и раньше.
Я также пытался 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>
Parts с xxxxx содержит мой правильный основной идентификатор и токен авторизации.
Кто-нибудь знает, изменил ли Apple что-то там недавно?Я уверен, что ничего не изменил в своем коде, и запросы, подобные приведенному выше, успешно работали несколько дней назад.