iCloud的CalDav客户端:MKCOL失败,412前置条件失败

iCloud的CalDav客户端:MKCOL失败,412前置条件失败,icloud,caldav,http-status-code-412,Icloud,Caldav,Http Status Code 412,我需要帮助。 我在我们的系统上实现了一个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

我需要帮助。 我在我们的系统上实现了一个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`
正文:


"
某个名字
`
网址:

https://caldav.icloud.com/1722222111/calendars/64DA8FE9D95A40E4B83A45B47DEC6C53/

URL是我的原则(当然我改变了它)和为日历资源随机生成的UUID

也许有人发现了错误? 6个月前还可以正常工作


非常感谢!如果您使用
https://pXX-caldav.icloud.com/123456789/calendars/new-calendar-name-or-href/
对于发出
MKCOL
请求,您将获得
201已创建
状态,新收藏的href将为
pXX caldav.icloud.com/123456789/calendars/new calendar name或href/

虽然
caldav.icloud.com
端点上似乎有一个映射错误(如果您想引用,请将其归档为Radar 46258347),但是不应该首先在该端点上点击
/calendars
URL

您只能使用
caldav.icloud.com
来发现主体资源(代表用户/帐户)。这包含为您的帐户托管caldav服务器的实际分区,它看起来像:

https://pXX-caldav.icloud.com/asdfjasdjkjfd/calendars/
这些端点似乎仍然工作得很好(只是尝试过)

那么如何从
caldav.icloud.com
到实际的caldav服务器呢?您需要检索主体的属性

整个过程在CalDAV RFC或本nice指南中进行了描述:
.

如果我使用URI:
https://caldav.icloud.com/1722222111/calendars/
但是,只允许一个集合,我想至少创建三个日历。我不确定如何访问或创建这些日历的新URI。正如我所提到的,它用于生成UUID,并将UUID连接到c阿伦达·乌里。我现在就可以吻你了!!非常感谢。有没有任何方法可以被记录在某个地方?不幸的是,iCloud最大的问题是缺乏文档。我通过一些尝试和错误找到了答案。这将是一个直接的错误,应该受到重视:“不幸的是,iCloud最大的问题是缺乏文档“-CalDAV协议是一个适当的标准,包含完整的RFC和大量文档!谢谢你的评论,实际上我在评论中提供的url是错误的,我已经更正了。正如我所说,我必须向发送MKCOL请求,以便在.Good point创建一个新日历。我会的。到目前为止,我似乎无法在上执行PROPFIND请求。它总是返回404“not foud”。但我会找到答案的。好的,最后一句话就是:我实现了发现方法和bug的解决方法。一切正常!我非常感谢你们!!!那么你介意把这个答案标为答案吗?被接受的一个可能会工作,但这是一个不合格的黑客,一旦他们修复它就会崩溃…我标记了第二个答案。因为我同意这是最佳实践。然而,我的问题解决了解决方案1。我希望苹果能很快修复这个错误,我可以删除我的解决方法。如果需要黑客,听起来我们还没有一个正确的答案。当我在Calendar.app中执行MKCALENDAR并查看Charles跟踪时,它会发出正确的请求并成功。现在,这可能是由于用户代理嗅探,不确定。
https://pXX-caldav.icloud.com/asdfjasdjkjfd/calendars/