我一直在尝试接收与我的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还是有其他错误?我希望有人能引导我走向正确的方向。
答案 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框架实际发送到服务器的内容。