【问题标题】:Swift 3: how to check if cookies for particular URL are configured?Swift 3:如何检查特定 URL 的 cookie 是否已配置?
【发布时间】:2017-02-04 09:50:52
【问题描述】:

我正在为具有基于 cookie 的验证的 API 构建应用程序,但遇到了几个问题。

我当前的问题是检查是否为域配置了自动登录 cookie 的功能,但我无法正确设置它。

我目前的尝试是:

func cookiesConfigured() -> Bool {
    let cookieStorage = HTTPCookieStorage.shared.dictionaryWithValues(forKeys: ["AutologinCookie"])
    if !cookieStorage.isEmpty {
        return true
    } else {
        return false
    }
    return false // <- will never be executed
}

检查特定 cookie 的 cookie 存储内容的正确方法是什么?

【问题讨论】:

  • HTTPCookieStorage 文档是怎么说的?
  • 我阅读了整个 HTTPCookieStorage 文档两次,但找不到检查是否设置了特定 cookie 的方法。
  • cookies(for:) 有什么问题?
  • 好吧,我有一个新的时刻。我太专注于默认的 return false 没有被执行,而 nil 检查已经涵盖了这两种可能性。非常感谢您的指导。

标签: swift cookies login nshttpcookie nshttpcookiestorage


【解决方案1】:

您可能已经意识到,dictionaryWithValues 是一个 NSObject 方法,并没有按照您的想法执行。

您需要链接cookiesForfilterisEmpty

【讨论】:

  • 就是这样。您对cookies(for:) 的建议使我找到了正确的解决方案。非常感谢!
【解决方案2】:

这是获取特定 cookie 的 Swift 3 代码。

let cookieJar = HTTPCookieStorage.shared

for cookie in cookieJar.cookies! {

   if cookie.name == "MYNAME" {

      let cookieValue = cookie.value

      print("COOKIE VALUE = \(cookieValue)")
   }
}

【讨论】:

    猜你喜欢
    • 2013-04-24
    • 2014-06-15
    • 2018-01-08
    • 1970-01-01
    • 2020-01-18
    • 1970-01-01
    • 2019-01-21
    • 2019-10-28
    • 2014-09-11
    相关资源
    最近更新 更多