【问题标题】:How can I use cookies using AFHTTPRequestOperationManager in AFNetworking 2.0+?如何在 AFNetworking 2.0+ 中使用 AFHTTPRequestOperationManager 使用 cookie?
【发布时间】:2015-06-16 10:10:59
【问题描述】:

众所周知,AFNetworking 2.0+ 中的 AFHTTPSessionManager 支持 cookie。

但是 AFNetworking 2.0+ 中的 AFHTTPRequestOperationManager 是否可以支持 cookie?

【问题讨论】:

  • 你为AFHTTPRequestOperationManager解决了吗?

标签: ios objective-c afnetworking


【解决方案1】:

是的。 AFNetworking 使用基础 URL 加载系统,该系统开箱即用地处理 cookie。

你可以配置 NSMutableURLRequest 的 setHTTPShouldHandleCookies 并使用 NSHTTPCookieStorage 来存储它们。

在 Objective-C 中:

NSArray *cookieStorage = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:url];
NSDictionary *cookieHeaders = [NSHTTPCookie requestHeaderFieldsWithCookies:cookieStorage];
NSMutableURLRequest *request = [myRequestSerializer requestWith…];
for (NSString *key in cookieHeaders) {
    [request addValue:cookieHeaders[key] forHTTPHeaderField:key];
}

在 Swift 中:

var request = NSMutableURLRequest() // you can use an AFNetworking Request Serializer to create this

if let cookieStorage = NSHTTPCookieStorage.sharedHTTPCookieStorage().cookiesForURL(url) {
    for (headerField, cookie) in NSHTTPCookie.requestHeaderFieldsWithCookies(cookieStorage) {
        request.addValue(cookie, forHTTPHeaderField: headerField)
    }
}

【讨论】:

  • 您能告诉我一种清除 cookie 的方法吗?例如,与同一位经理开始新的会话?谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-26
  • 2013-12-07
相关资源
最近更新 更多