Сохраняет ли Alamofire файлы cookie автоматически?


Я новичок в Alamofire так что мне жаль, если это вопрос noob: этот фреймворк автоматически хранит куки ?

Это потому, что у меня есть такая простая просьба:

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, который мне нужен для выполнения других запросов по соображениям безопасности; странная вещь заключается в том, что, как по волшебству, я уже могу выполнять другие запросы после этого первого сообщения, не читая вручную cookie и не сохраняя его. Я уверен, что другие запросы нуждаются в куки сессии, потому что они терпят неудачу на почтальон, например, но не здесь.

Это просто особенность? Потому что я не могу найти ничего об этом также на официальной странице GitHub.

1 25

1 ответ:

Да! Alamofire-это в основном оболочка вокруг NSURLSession. Его менеджер использует значение по умолчанию NSURLSessionConfiguration, вызывая defaultSessionConfiguration().

Как говорится на странице github под расширенное использование раздел:

Alamofire построен наNSURLSession и системе Загрузки URL-адресов Foundation. Чтобы максимально использовать эту структуру, рекомендуется ознакомиться с концепциями и возможностями базового сетевого стека.

И ниже менеджер раздел:

Методы удобства верхнего уровня, такие как Alamofire.запрос использовать общий экземпляр Alamofire.Диспетчер, который настроен с помощью nsurlsessionconfigurationпо умолчанию .

И ссылка NSURLSessionConfiguration для defaultSessionConfiguration() говорит:

Конфигурация сеанса по умолчанию использует постоянный дисковый кэш (за исключением случаев, когда результат загружается в файл) и сохраняет учетные данные в памяти пользователя. брелок. Он также хранит файлы cookie (по умолчанию) в том же общем хранилище файлов cookie, что и классы NSURLConnection и NSURLDownload.