如何将cookie传递给NSUrlSession?

时间:2015-04-06 22:36:13

标签: ios xamarin nsurlsession nsurlsessiondownloadtask

对于iOS,我编写了NSUrlSession的自定义委托和实现。它适用于Http网址。但是,当我尝试从已经过身份验证且需要传递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完成的,该NSUrlSession获取我可以在整个应用中使用的Cookie。

所以我的问题是如何将cookie传递给{{1}}?

1 个答案:

答案 0 :(得分:0)

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

NSURLSession将从NSHTTPCookieStorage获取cookie。