How can I use cookies using AFHTTPRequestOperationManager in AFNetworking 2.0+?

两盒软妹~` 提交于 2019-12-21 05:06:21

问题


As it is known, AFHTTPSessionManager in AFNetworking 2.0+ supports cookies.

But is it possible for AFHTTPRequestOperationManager in AFNetworking 2.0+ to support cookies?


回答1:


Yes. AFNetworking uses the foundation URL Loading system, which handles cookies out of the box.

You can configure NSMutableURLRequest's setHTTPShouldHandleCookies and use NSHTTPCookieStorage to store them.

In 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];
}

In 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)
    }
}


来源:https://stackoverflow.com/questions/21506038/how-can-i-use-cookies-using-afhttprequestoperationmanager-in-afnetworking-2-0

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