导入iCloud联系人.NET(CardDAV)

时间:2013-06-14 08:54:30

标签: c# .net icloud vcard carddav

我一直在尝试接收与我的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还是有其他错误?我希望有人能引导我走向正确的方向。

1 个答案:

答案 0 :(得分:2)

你提到的第二个网址看起来还不错。但要可靠地获取托管地址簿的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>

要查找主体,您需要查询&#39;主要网址&#39;财产,例如在/上,使用您的身份验证设置:

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

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