c# - 从 iCloud API 获取联系人列表

标签 c# httpwebrequest icloud

使用以下 URL 请求 ICloud API 并登录

string url = "https://setup.icloud.com/setup/ws/1/login?clientBuildNumber=1P24&clientId=" + RANDOM_GUID;

从上面的 url 响应中获取服务器 url 和 dsid。 使用以下代码进一步请求联系人列表

var localUrl2 = "https://p66-contactsws.icloud.com/co/startup?clientBuildNumber=1P24&clientId=" + RANDOM_GUID + "&clientVersion=2.1&dsid=" + dsid + "&locale=en-EN&order=last%2Cfirst";
var webRequest2 = (HttpWebRequest)WebRequest.Create(localUrl2);
webRequest2.Method = "GET";
webRequest2.Headers.Set("Origin", "https://www.icloud.com");
// get the X-APPLE-WEBAUTH-TOKEN and X-APPLE-WEBAUTH-USER from  webResponse.Headers.SetCookie
webRequest2.Headers.Set("X-APPLE-WEBAUTH-TOKEN",  XXXXXXX);
webRequest2.Headers.Set("X-APPLE-WEBAUTH-USER",  XXXXXXXX);

WebResponse webResponse2 = webRequest2.GetResponse();

仍然出现异常

The remote server returned an error: (421) Misdirected Request.

请让我知道上面的代码有什么问题。

最佳答案

如评论中所述,Apple 已将您尝试到达的终点设为离线,因此出现 421 错误。您可以研究另一种方法来完成此操作 here .

关于c# - 从 iCloud API 获取联系人列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51629319/

相关文章:

c# - 如何在网页底部注册客户端脚本资源以提高加载时间

ios - HomeKit 抛出错误 77 和 78

使用 iCloud 存储的 iOS 应用程序正在向我的文档添加 .icloud 文件扩展名

c# - asp.net c# 应用程序中浏览器之间的文件扩展名丢失

c# - nClam - 如何将 linux 服务器路径传递给 ScanFileOnServer

c# - 半透明图片框c#

ios - CloudKit:获取具有特定记录类型的所有记录?

c# - 如何在 Visual Studio 中获取参数提示/完成?

ruby-on-rails - 如何查看通过 Rails 应用程序发送的 HTTP 请求?

c# - 从C#应用程序到Firefox扩展的通信