6

我一直在尝试接收与我的 Apple ID 相关的 iCloud 联系人,但由于某种原因它不起作用。我收到 (404) Not Found 错误。

我知道 iCloud 使用 CardDAV,并且您需要一个特定的 URL 地址才能访问您的联系人。

对于 CardDAV 客户端,我使用了以下内容:https://github.com/Metric/CardDavNet 对于服务器地址,我尝试了多个 url(当然 MYUSERID 是我的真实用户 ID):

https://p02-caldav.icloud.com/MYUSERID/carddavhome/card/ https://p02-contacts.icloud.com/MYUSERID/carddavhome/card/

我究竟做错了什么?我使用了正确的服务器 URL 还是有其他问题?我希望有人能引导我走向正确的方向。

4

1 回答 1

3

您提到的第二个 URL 看起来还不错。但是要可靠地获取托管您的地址簿的 URL,您需要查询您帐户的主要记录的 addressbook-home-set 属性。

喜欢:

PROPFIND Depth:0 /12345/principal/
<propfind xmlns="DAV:">
  <prop>
    <addressbook-home-set xmlns="urn:ietf:params:xml:ns:carddav"/>
  </prop>
</propfind>

为了找到委托人,您可以使用您的身份验证集查询“principal-URL”属性,例如在 / 上:

PROPFIND Depth:0 /
<propfind xmlns="DAV:">
  <prop><principal-URL/></prop>
</propfind>

您可能还想使用像 Charles 或 Fiddler 这样的调试代理来确定您的 .NET 框架实际发送到服务器的内容。

于 2014-02-27T17:37:12.587 回答