0

对于 iOS,我编写了一个自定义委托和NSUrlSession. 它适用于 Http url。但是,当我尝试从经过身份验证且需要传递 Cookie 的 HTTPS 源下载图像资源时,下载失败并显示NSUrlErrorCode-1013 或 -1002。

 NSMutableUrlRequest req = new NSMutableUrlRequest(new NSUrl(uri.ToString()));
 req.Headers = dictHeaders;//
 NSUrlSessionDownloadTask newTask = session.CreateDownloadTask(req);
 activeDownloads.Add(newTask);
 newTask.Resume();

因此,在NSUrlSessionDownloadDelegate我已经实现了该DidReceiveChallenge方法但目前没有在那里传递任何东西,因为我想从我的初始登录中传递 cookie,如上所述。

NSUrlSession对整个应用程序使用共享会话,但我的初始登录 API 是使用RestSharp.RestClient它获取我可以在整个应用程序中使用的 cookie 完成的。

所以我的问题是如何将 cookie 传递给NSUrlSession

4

1 回答 1

0

据我所知,所有使用 cookie 的工作都通过NSHTTPCookieStoragehttps://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSHTTPCookieStorage_Class/index.html进行。您可以cookieAcceptPolicy用来配置 cookie 在您的应用程序中的使用方式,甚至在需要时手动添加/删除 cookie。

NSURLSession 将从 NSHTTPCookieStorage 获取 cookie。

于 2015-04-16T10:06:07.813 回答