如何将Cookie字符串从所有HTTPHeaderFields转换为HTTPCookie

时间:2018-09-21 09:49:30

标签: ios swift

我想检查请求中是否存在cookie.name =='Custom'。

现在,我从字典request.allHTTPHeaderFields中读取字符串,然后进行分割,然后跟随for循环。我认为有一种优雅的方法。

if let allHTTPHeaderFields = request.allHTTPHeaderFields,
   let cookies = allHTTPHeaderFields["Cookie"] {
   let cookieArray = cookies.split(separator: ";")
       for cookie in cookieArray {
           if cookie.contains("Custom") {
             //do something
           }
        }
}

我尝试了HTTPCookie.cookies(withResponseHeaderFields: allHTTPHeaderFields, for: url),但它总是返回0 elements

1 个答案:

答案 0 :(得分:0)

您可以将cookie的所有元素或特定元素转换为字符串或追加到数组中,然后尝试这种方法。

    let cookie = HTTPCookieStorage.shared.cookies
    // print(cookie!)

    for cook in cookie!
    {
        if cook.name == "sessionid"
        {
            get.append(cook.value)
        }
        else if cook.name == "ds_user_id"
        {
            get.append(cook.value)
        }
        else if cook.name == "csrftoken"
        {
            get.append(cook.value)
        }
    }

    print(get)

这对我有用,希望对您有帮助。