繁体   English   中英

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

CalDav Client for iCloud: MKCOL fails with 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 个月前工作正常。

非常感谢!

2 个回复

虽然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/

2 412前提条件失败,无响应

嗨,我正在尝试从我的API检索json响应,但是如果状态代码是412,我就会遇到问题。它一直在加载,并且没有返回响应。 但是,如果我将代码更改为400,它将成功返回输出。 有什么原因吗? ...

3 Django中的412(前提条件失败)

我有这个API端点,用于注册用户并被移动应用程序使用: 我最近将应用程序从Django 1.7迁移到了Django 1.10。 之后,我开始收到这个奇怪的错误。 如果第二次访问此API,则返回412 (precondition failed)错误。 我搜寻了网,据我所知,会发生 ...

4 立即更新和删除联系人失败,并失败了412个先决条件

我做了以下工作:1)更新了一个现有的Google联系人2)得到了更新的联系人(带有新的etag)作为api调用的返回值3)对该更新的联系人发出了删除请求 尽管我在提琴手中发现请求和响应中的etag匹配,但我得到了412个前提条件失败。 我调试了代码,然后逐步完成代码,没有任何错误。 ...

7 Http状态码412-前提条件失败

尝试调用静态服务时获得412状态码作为响应 通过ajax调用静态服务时,我在请求标头和作为json对象的请求正文中传递身份验证令牌。 我从服务器获得的响应被捕获为412状态代码。 {“代码”:412,“状态”:“前提条件失败”,“消息”:“用户查询全部失败:解析身份验证令牌时发 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM