2016-01-04 7 views
5

にクッキーを設定するためにどのように私は私のHTTPリクエスト にクッキーを設定しようとしていると私は以下のコードが動作するだろうと考えた:スウィフト - NSMutableURLRequest

let request = NSMutableURLRequest(URL: url) 
request.HTTPMethod = "GET" 
request.setValue("key=value;", forHTTPHeaderField: "Cookie") 

をしかし、このコードは動作しません。 誰もそれを設定する方法がありますか?

答えて

11

はあなたがHTTPCookieStorage見たいスウィフト3

のための答えを更新しました。

// First 
let jar = HTTPCookieStorage.shared 
let cookieHeaderField = ["Set-Cookie": "key=value"] // Or ["Set-Cookie": "key=value, key2=value2"] for multiple cookies 
let cookies = HTTPCookie.cookies(withResponseHeaderFields: cookieHeaderField, for: url) 
jar.setCookies(cookies, for: url, mainDocumentURL: url) 

// Then 
var request = URLRequest(url: url) 

あなたはNSHTTPCookieStorage見たい迅速2

ためのオリジナルの答え。ここで

// First 
let jar = NSHTTPCookieStorage.sharedHTTPCookieStorage() 
let cookieHeaderField = ["Set-Cookie": "key=value"] // Or ["Set-Cookie": "key=value, key2=value2"] for multiple cookies 
let cookies = NSHTTPCookie.cookiesWithResponseHeaderFields(cookieHeaderField, forURL: url) 
jar.setCookies(cookies, forURL: url, mainDocumentURL: url) 

// Then 
let request = NSMutableURLRequest(URL: url) 
+0

を使ってクッキーを設定した後、それはスウィフト3.xの中でどのように動作するかです!私はこの正しい答えを探していたので... – Josh

1

あなたはそれが動作HTTPCookieStorage

let cookies=HTTPCookieStorage.shared.cookies(for: URL(string: cookieURL)!) 
let headers=HTTPCookie.requestHeaderFields(with: cookies!) 
let request = NSMutableURLRequest(url: requestURL!) 
request.allHTTPHeaderFields=headers