2017-04-20 19 views
0

私はログインアプリケーションに取り組んでいます。成功したログイン応答が2つのクッキーを返した後、私はHTTPURLResponseのヘッダーからこの2つのクッキーを取得したいのですが、(httpResponse fields didn 'クッキーが含まれています)どうすれば私の将来の要求を見つけることができますか?おかげで私にHTTPURLResponseからクッキーを保存するには

私の部分のコードを支援するために:

let task = URLSession.shared.dataTask(with: request) { data, response, error in 


     if let httpResponse = response as? HTTPURLResponse, let fields = httpResponse.allHeaderFields as? [String : String] { 

      let cookies = HTTPCookie.cookies(withResponseHeaderFields: fields, for: (response?.url!)!) 

      for cookie in cookies { 
       //print ("hi") 
       var cookieProperties = [HTTPCookiePropertyKey: Any]() 
       cookieProperties[HTTPCookiePropertyKey.name] = cookie.name 
       cookieProperties[HTTPCookiePropertyKey.value] = cookie.value 
       cookieProperties[HTTPCookiePropertyKey.domain] = cookie.domain 
       cookieProperties[HTTPCookiePropertyKey.path] = cookie.path 
       cookieProperties[HTTPCookiePropertyKey.version] = NSNumber(value: cookie.version) 
       cookieProperties[HTTPCookiePropertyKey.expires] = cookie.expiresDate 

       let newCookie = HTTPCookie(properties: cookieProperties) 
       HTTPCookieStorage.shared.setCookie(newCookie!) 
      }   } 
    } 
    task.resume() 
+0

私はそれを試してみましたが、私のために動作しませんでしたが、イム・スウィフト3を使用し、ロブが迅速2を使用しているが、残念ながら同じではありません –

答えて

0
URLCache.shared.removeAllCachedResponses() 
URLCache.shared.diskCapacity = 0 
URLCache.shared.memoryCapacity = 0 

if let cookies = HTTPCookieStorage.shared.cookies { 
    for cookie in cookies { 
     HTTPCookieStorage.shared.deleteCookie(cookie) 
    } 
}