Alamofire会自动存储cookie吗?

问题描述 投票:27回答:1

我是Alamofire的新手,所以如果这是一个noob问题,我很抱歉:这个框架会自动存储cookie吗?

这是因为我有这样一个简单的请求:

Alamofire.request(.POST, loginURL, parameters: ["fb_id": fbId, "fb_access_token": fbToken])
         .responseJSON { response in
             //print(response.request)  // original URL request                          
             //print(response.response) // URL response
             //print(response.data)     // server data
             //print(response.result)   // result of response serialization

             if let JSON = response.result.value {
                 print("loginURL - JSON: \(JSON)")
             }
         }

这个请求响应与cookie会话,我需要做出其他安全原因的请求;奇怪的是,像魔术一样,我已经可以在第一次POST之后执行其他请求,而无需手动读取cookie并存储它。我确定其他请求需要cookie会话,因为他们在postman上失败,例如但不在这里。

这只是一个功能?因为我在官方GitHub page上也找不到任何东西。

ios swift post cookies alamofire
1个回答
48
投票

是! Alamofire基本上是围绕NSURLSession的包装。它的经理通过调用NSURLSessionConfiguration使用默认的defaultSessionConfiguration()

正如其github页面在Advanced Usage部分所述:

Alamofire基于NSURLSession和Foundation URL加载系统构建。要充分利用此框架,建议您熟悉底层网络堆栈的概念和功能。

并在Manager部分:

像Alamofire.request这样的顶级便捷方法使用Alamofire.Manager的共享实例,该实例配置了默认的NSURLSessionConfiguration。

NSURLSessionConfiguration referencedefaultSessionConfiguration()说:

默认会话配置使用基于磁盘的持久缓存(除非将结果下载到文件中),并将凭据存储在用户的密钥链中。它还将cookie(默认情况下)存储在与NSURLConnection和NSURLDownload类相同的共享cookie存储中。

© www.soinside.com 2019 - 2024. All rights reserved.