Set alamofire cookies permenantly
up vote
0
down vote
favorite
I am using Alamofire for my requests and I get cookies in some of them, everything works fine when I launch the app and use it but when I kill the app and reopen the cookies are not there anymore. I searched a lot and found this but none of the answers helped.
I try to save the cookies after each request and load them before sending request as below:
func saveCookies(response: DataResponse<Any>)
let headerFields = response.response?.allHeaderFields as! [String: String]
let url = response.response?.url
let cookies = HTTPCookie.cookies(withResponseHeaderFields: headerFields, for: url!)
var cookieArray = [[HTTPCookiePropertyKey: Any]]()
for cookie in cookies
cookieArray.append(cookie.properties!)
UserDefaults.standard.set(cookieArray, forKey: "savedCookies")
UserDefaults.standard.synchronize()
func loadCookies()
guard let cookieArray = UserDefaults.standard.array(forKey: "savedCookies") as? [[HTTPCookiePropertyKey: Any]] else return
for cookieProperties in cookieArray
if let cookie = HTTPCookie(properties: cookieProperties)
HTTPCookieStorage.shared.setCookie(cookie)
But still when I kill the app, I can't get the data.
swift cookies alamofire
add a comment |
up vote
0
down vote
favorite
I am using Alamofire for my requests and I get cookies in some of them, everything works fine when I launch the app and use it but when I kill the app and reopen the cookies are not there anymore. I searched a lot and found this but none of the answers helped.
I try to save the cookies after each request and load them before sending request as below:
func saveCookies(response: DataResponse<Any>)
let headerFields = response.response?.allHeaderFields as! [String: String]
let url = response.response?.url
let cookies = HTTPCookie.cookies(withResponseHeaderFields: headerFields, for: url!)
var cookieArray = [[HTTPCookiePropertyKey: Any]]()
for cookie in cookies
cookieArray.append(cookie.properties!)
UserDefaults.standard.set(cookieArray, forKey: "savedCookies")
UserDefaults.standard.synchronize()
func loadCookies()
guard let cookieArray = UserDefaults.standard.array(forKey: "savedCookies") as? [[HTTPCookiePropertyKey: Any]] else return
for cookieProperties in cookieArray
if let cookie = HTTPCookie(properties: cookieProperties)
HTTPCookieStorage.shared.setCookie(cookie)
But still when I kill the app, I can't get the data.
swift cookies alamofire
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I am using Alamofire for my requests and I get cookies in some of them, everything works fine when I launch the app and use it but when I kill the app and reopen the cookies are not there anymore. I searched a lot and found this but none of the answers helped.
I try to save the cookies after each request and load them before sending request as below:
func saveCookies(response: DataResponse<Any>)
let headerFields = response.response?.allHeaderFields as! [String: String]
let url = response.response?.url
let cookies = HTTPCookie.cookies(withResponseHeaderFields: headerFields, for: url!)
var cookieArray = [[HTTPCookiePropertyKey: Any]]()
for cookie in cookies
cookieArray.append(cookie.properties!)
UserDefaults.standard.set(cookieArray, forKey: "savedCookies")
UserDefaults.standard.synchronize()
func loadCookies()
guard let cookieArray = UserDefaults.standard.array(forKey: "savedCookies") as? [[HTTPCookiePropertyKey: Any]] else return
for cookieProperties in cookieArray
if let cookie = HTTPCookie(properties: cookieProperties)
HTTPCookieStorage.shared.setCookie(cookie)
But still when I kill the app, I can't get the data.
swift cookies alamofire
I am using Alamofire for my requests and I get cookies in some of them, everything works fine when I launch the app and use it but when I kill the app and reopen the cookies are not there anymore. I searched a lot and found this but none of the answers helped.
I try to save the cookies after each request and load them before sending request as below:
func saveCookies(response: DataResponse<Any>)
let headerFields = response.response?.allHeaderFields as! [String: String]
let url = response.response?.url
let cookies = HTTPCookie.cookies(withResponseHeaderFields: headerFields, for: url!)
var cookieArray = [[HTTPCookiePropertyKey: Any]]()
for cookie in cookies
cookieArray.append(cookie.properties!)
UserDefaults.standard.set(cookieArray, forKey: "savedCookies")
UserDefaults.standard.synchronize()
func loadCookies()
guard let cookieArray = UserDefaults.standard.array(forKey: "savedCookies") as? [[HTTPCookiePropertyKey: Any]] else return
for cookieProperties in cookieArray
if let cookie = HTTPCookie(properties: cookieProperties)
HTTPCookieStorage.shared.setCookie(cookie)
But still when I kill the app, I can't get the data.
swift cookies alamofire
swift cookies alamofire
edited Nov 11 at 13:17
asked Nov 11 at 12:26
Niloufar
17316
17316
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
Try to save your cookies in UserDefaults like this:
var authToken: String
get
return defaults.value(forKey: TOKEN_KEY) as! String
set
defaults.set(newValue, forKey: TOKEN_KEY)
Then how I should set it to be my alamofire cookie?
– Niloufar
Nov 11 at 13:11
Just make common request with Alamofire, get an answer from your server and save it to UserDefaults variable. After that, you can reopen your app and use this for all stuff you need.
– Den Andreychuk
Nov 11 at 13:25
No it's not working like that
– Niloufar
Nov 11 at 13:33
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
Try to save your cookies in UserDefaults like this:
var authToken: String
get
return defaults.value(forKey: TOKEN_KEY) as! String
set
defaults.set(newValue, forKey: TOKEN_KEY)
Then how I should set it to be my alamofire cookie?
– Niloufar
Nov 11 at 13:11
Just make common request with Alamofire, get an answer from your server and save it to UserDefaults variable. After that, you can reopen your app and use this for all stuff you need.
– Den Andreychuk
Nov 11 at 13:25
No it's not working like that
– Niloufar
Nov 11 at 13:33
add a comment |
up vote
0
down vote
Try to save your cookies in UserDefaults like this:
var authToken: String
get
return defaults.value(forKey: TOKEN_KEY) as! String
set
defaults.set(newValue, forKey: TOKEN_KEY)
Then how I should set it to be my alamofire cookie?
– Niloufar
Nov 11 at 13:11
Just make common request with Alamofire, get an answer from your server and save it to UserDefaults variable. After that, you can reopen your app and use this for all stuff you need.
– Den Andreychuk
Nov 11 at 13:25
No it's not working like that
– Niloufar
Nov 11 at 13:33
add a comment |
up vote
0
down vote
up vote
0
down vote
Try to save your cookies in UserDefaults like this:
var authToken: String
get
return defaults.value(forKey: TOKEN_KEY) as! String
set
defaults.set(newValue, forKey: TOKEN_KEY)
Try to save your cookies in UserDefaults like this:
var authToken: String
get
return defaults.value(forKey: TOKEN_KEY) as! String
set
defaults.set(newValue, forKey: TOKEN_KEY)
answered Nov 11 at 13:09
Den Andreychuk
587
587
Then how I should set it to be my alamofire cookie?
– Niloufar
Nov 11 at 13:11
Just make common request with Alamofire, get an answer from your server and save it to UserDefaults variable. After that, you can reopen your app and use this for all stuff you need.
– Den Andreychuk
Nov 11 at 13:25
No it's not working like that
– Niloufar
Nov 11 at 13:33
add a comment |
Then how I should set it to be my alamofire cookie?
– Niloufar
Nov 11 at 13:11
Just make common request with Alamofire, get an answer from your server and save it to UserDefaults variable. After that, you can reopen your app and use this for all stuff you need.
– Den Andreychuk
Nov 11 at 13:25
No it's not working like that
– Niloufar
Nov 11 at 13:33
Then how I should set it to be my alamofire cookie?
– Niloufar
Nov 11 at 13:11
Then how I should set it to be my alamofire cookie?
– Niloufar
Nov 11 at 13:11
Just make common request with Alamofire, get an answer from your server and save it to UserDefaults variable. After that, you can reopen your app and use this for all stuff you need.
– Den Andreychuk
Nov 11 at 13:25
Just make common request with Alamofire, get an answer from your server and save it to UserDefaults variable. After that, you can reopen your app and use this for all stuff you need.
– Den Andreychuk
Nov 11 at 13:25
No it's not working like that
– Niloufar
Nov 11 at 13:33
No it's not working like that
– Niloufar
Nov 11 at 13:33
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53248751%2fset-alamofire-cookies-permenantly%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown