Alamofire request with cookies

匿名 (未验证) 提交于 2019-12-03 02:49:01

问题:

I'm beginner and I can't figure out how to make a .GET request (however it requires autenthication) with Alamofire. I managed to do this with other web service (login) because it takes parameters argument:

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

Then:

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

In response header I get some information:

[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] 

It's of type [NSObject : AnyObject]

What should I do with that information to store it in NSURLDefaults and prepare valid request parameter (cookie)? Do I need all fields or just Set-Cookie?

I tried manually set parameter:

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

but it does return error NSURLErrorDomain -1017 (NSURLErrorCannotParseResponse)

Thanks for all responses.

回答1:

Ok, after 2 weeks I just found a solution:

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        } 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!