AF全球网络化和存储Cookie

时间:2012-05-04 10:21:14

标签: ios networking cookies afnetworking

我有一个应用程序,我使用AFNetworking进行网络连接。 我正在与之交谈的服务使用Basic Auth进行身份验证。 所以在我的客户端,我使用setAuthorizationHeaderWithUsername:password:方法设置用户名和密码,一切正常。

现在我应该在应用中添加“在浏览器中打开”按钮。但是当我调用URL时,我的iPhone / iPad上的Safari会希望用户再次登录。

有没有解决方案我可以设置登录默认cookie存储区时获得的cookie?

到目前为止我尝试的是:

NSString* authorization = [client defaultValueForHeader:@"Authorization"];
NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary];
[cookieProperties setObject:@"myCookie" forKey:NSHTTPCookieName];
[cookieProperties setObject:authorization forKey:NSHTTPCookieValue];
[cookieProperties setObject:@"www.the.server" forKey:NSHTTPCookieDomain];
[cookieProperties setObject:@"www.the.server" forKey:NSHTTPCookieOriginURL];
[cookieProperties setObject:@"/" forKey:NSHTTPCookiePath];
[cookieProperties setObject:@"0" forKey:NSHTTPCookieVersion];             
[cookieProperties setObject:[[NSDate date] dateByAddingTimeInterval:2629743] forKey:NSHTTPCookieExpires];

NSHTTPCookie* cookie = [[NSHTTPCookie alloc] initWithProperties:cookieProperties];
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];

这给了我一个cookie,但是当我在iPhone / iPad上打开Safari中的URL时它无法正常工作

AFNetworking中是否有任何API调用可以处理?或者我有办法手动自己做吗?

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

不,每个应用都有自己的沙箱。没有办法与Safari共享cookie。