HTTPCookie.cookies(withResponseHeaderFields:headerFields,for:URL)在iOS 11中返回0

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

我已经努力解决这个问题超过两个小时,但无法理解发生了什么。

我实际上是在我的APP中存储从Server for AuthLogin URL返回的cookie。以下代码适用于iOS11以下的iOS版本但在iOS 11中HTTPCookie.cookies(withResponseHeaderFields: responseheaderFields, for: URL)返回0元素。请添加您的输入以解决此问题。谢谢提前。

if response.response?.statusCode == 200 {
                    if
                        let responseheaderFields = response.response?.allHeaderFields as? [String :String],
                        let URL = response.request?.url {

                        let cookieStorage = HTTPCookieStorage.shared
                        cookieStorage.cookieAcceptPolicy =  .always
                        print("policy: \(cookieStorage.cookieAcceptPolicy.rawValue)")

                        // Store session cookie in Keychain
                        let cookies = HTTPCookie.cookies(withResponseHeaderFields: responseheaderFields, for: URL)
                        let cookieToStore = cookies.filter(
                        { $0.name == "MY_COOKIE" }).first
                        Application.sessionCookie = cookieToStore
                        print("Cookie ==> \(cookieToStore!)")
cookies ios11
1个回答
0
投票

还想出了这个问题。我想出了另一种解决方法

func setCookies(dictionary: [String: String]) {
    for (name, value) in dictionary {
        if let cookie = HTTPCookie(properties: [
            .domain: ".xxxx.com",
            .path: "/",
            .name: name,
            .value: value
            ]) {
            HTTPCookieStorage.shared.setCookie(cookie)
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.