В моем приложении я пытаюсь войти в систему через UIWebView. При успешном использовании файлов cookie для входа в систему установлено значение NSHTTPCookieStorage
. В UIWebView открыто несколько страниц моих приложений.Сессия не поддерживается между UIWebView
Когда запрос на конкретную веб-страницу отправляется, он проверяет, был ли пользователь зарегистрирован или нет на основе файлов cookie.
Я проверил, что файлы cookie присутствуют в NSHTTPCookieStorage
, но не являются допустимыми куки-файлы на сервере. То есть, он рассматривает пользователя как зарегистрированного пользователя.
Мой код для загрузки UIWebView, как показано ниже:
let url = serverURL + urlString
let urlRequest = NSMutableURLRequest(URL: NSURL(string: url)!)
webPage.loadRequest(urlRequest)
Даже я попытался с NSURLSession
и настройки печенье в качестве HTTPHeaderField. Ниже приведен мой код для этого:
let URLRequest: NSMutableURLRequest = NSMutableURLRequest(URL: NSURL(string: url)!)
let cookies = NSHTTPCookieStorage.sharedHTTPCookieStorage().cookiesForURL(NSURL(string: serverURL)!)
for cookie in cookies!{
URLRequest.setValue(cookie.value, forHTTPHeaderField: cookie.name)
}
let sessionConfig = NSURLSessionConfiguration.defaultSessionConfiguration()
let session = NSURLSession(configuration: sessionConfig, delegate: self, delegateQueue: nil)
let task = session.downloadTaskWithRequest(URLRequest)
task.resume()
Он работает исправно для нескольких случаев. Я не могу найти, что может быть проблемой для файлов cookie.
Любая помощь будет оценена по достоинству.
Заранее спасибо
Рассмотрите возможность использования 'WKWebView' (iOS 8+). С его помощью вы можете скопировать свойство 'configuration' из последнего использованного экземпляра в только что созданный и _maybe_, это сохранит файлы cookie. Кроме того, используйте _one_ экземпляр UIWebView для всего приложения. – werediver
Я сталкиваюсь с аналогичной проблемой, любезно помогите –