abi*_*nop 11 cookies swift alamofire
我正在尝试阅读帖子请求的响应cookie,如下面的Postman所做
我现在尝试没有成功的方式是
var cfg = NSURLSessionConfiguration.defaultSessionConfiguration()
var cookies = NSHTTPCookieStorage.sharedHTTPCookieStorage()
cfg.HTTPCookieStorage = cookies
cfg.HTTPCookieAcceptPolicy = NSHTTPCookieAcceptPolicy.Always
var mgr = Alamofire.Manager(configuration: cfg)
mgr.request(.POST, "http://example.com/LoginLocalClient", parameters: parameters).responseJSON { response in
print(response.response!.allHeaderFields)
print(NSHTTPCookieStorage.sharedHTTPCookieStorage().cookies)
}
Run Code Online (Sandbox Code Playgroud)
第一个print语句包含没有cookie的10个头字段,第二个包含一个空数组.
有任何想法吗?
cno*_*oon 24
您需要使用NSHTTPCookie cookiesWithResponseHeaderFields(_:forURL :)方法从响应中提取cookie .这是一个简单的例子:
func fetchTheCookies() {
let parameters: [String: AnyObject] = [:]
Alamofire.request(.POST, "http://example.com/LoginLocalClient", parameters: parameters).responseJSON { response in
if let
headerFields = response.response?.allHeaderFields as? [String: String],
URL = response.request?.URL
{
let cookies = NSHTTPCookie.cookiesWithResponseHeaderFields(headerFields, forURL: URL)
print(cookies)
}
}
}
Run Code Online (Sandbox Code Playgroud)
您尝试执行的所有配置自定义都不会产生任何影响.您设置的值已经是所有默认值.
Jon*_*mos 18
请注意,如果cookie没有在标题响应中发布,则接受的答案不起作用.显然,有些cookie会提前提取并存储在共享cookie存储区中,并且不会随响应一起显示.
你必须HTTPCookieStorage.shared.cookies改用.
斯威夫特3:
Alamofire.request(url, method: HTTPMethod.post, parameters: parameters).responseData { (responseObject) -> Void in
if let responseStatus = responseObject.response?.statusCode {
if responseStatus != 200 {
// error
} else {
// view all cookies
print(HTTPCookieStorage.shared.cookies!)
}
}
}
Run Code Online (Sandbox Code Playgroud)
幸得特拉维斯中号.
如果您只想读取与您交互的域的所有 cookie,则可以使用此方法获取所有 cookie。
let cookies = Alamofire.Manager.sharedInstance.session.configuration.HTTPCookieStorage?.cookiesForURL(NSURL(string: "mydomain.com")! )
Run Code Online (Sandbox Code Playgroud)
它返回一个可选的项目数组NSHTTPCookie。(斯威夫特 2.2和阿拉莫菲尔 3.4)
let cookies = Alamofire.SessionManager.default.session.configuration.httpCookieStorage?.cookies(for: url)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13334 次 |
| 最近记录: |