2015-03-08 3 views
6

Я начинаю, и я не могу понять, как сделать запрос .GET (однако он требует авторизации) с Alamofire. Мне удалось сделать это с другой веб-сервиса (логин), потому что он принимает параметры аргумент:Запрос Alamofire с печеньем

parameters = [ 
"username" : username 
"password" : password 
] 

Тогда:

Alamofire.request(.POST, loginUrl, parameters: parameters).responseJSON { (request, response, data, error) -> Void in 

    //handling the response  
} 

В заголовке ответа я получить некоторую информацию:

[Transfer-Encoding: Identity, Server: nginx/1.4.1, Content-Type: application/json, P3P: policyref="http://www.somewebpage.com", CP="NON DSP COR CURa TIA", Connection: keep-alive, Date: Sun, 08 Mar 2015 13:49:20 GMT, Vary: Accept-Encoding, Cookie, Set-Cookie: sessionid=5xeff47e65f674a4cc5b2d54f344304b; Domain=.somedomain.com; Path=/, tbauth=1; Domain=.somedomain.com; Path=/, Content-Encoding: gzip] 

Пришло типа [NSObject : AnyObject]

Что мне делать с этой информацией для его хранения в NSURLDefaults и подготовить действительный параметр запроса (cookie)? Мне нужны все поля или просто Set-Cookie?

Я попытался вручную установить параметры:

parameters = [ 
"Cookie" : "sessionid=5xeff47e65f674a4cc5b2d54f344304b; Domain=.somedomain.com; Path=/, tbauth=1; Domain=.somedomain.com; Path=/" 
] 

но это не возвращать ошибки NSURLErrorDomain -1017 (NSURLErrorCannotParseResponse)

Спасибо за все ответы.

ответ

14

Хорошо, через 2 недели я нашел решение:

let URL = NSURL(string: query)! 
let mutableUrlRequest = NSMutableURLRequest(URL: URL) 
mutableUrlRequest.HTTPMethod = "GET" 

let prefs = NSUserDefaults.standardUserDefaults() 
let cookie = prefs.valueForKey("COOKIE") as String 

mutableUrlRequest.setValue(cookie, forHTTPHeaderField: "Cookie") 

Alamofire.request(mutableUrlRequest).responseJSON { (request, response, data, error) -> Void in 

    //handling the response  
} 
+0

Nice один :) Я пытался с 'forKey' и получили ошибки все время – Rotem

+0

Как можно преобразовать [String: String] в String? – Elsammak

+0

Зачем потребовалось две недели, чтобы найти решение? –

Смежные вопросы