UIWebView和NSURLConnection共享cookie存储吗?

Lin*_*ios 23 google-app-engine objective-c uiwebview nsurlconnection ios

我正在构建一个使用Google App Engine作为后端的iOS应用程序.Google提供了一个存储身份验证Cookie的HTML登录网站.如果我在UIWebView中访问该站点,并且用户登录,那么这些cookie是否会存储在NSURLConnection在向同一站点发出请求时将被选中?

Ant*_* E. 22

UIWebView的cookie将存储在可通过的沙盒cookie存储中NSHTTPCookieStorage sharedHTTPCookieStorage].您可以通过以下方式在NSURLConnection中使用此cookie存储:

NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:[NSURL URLWithString:@"__YOUR_URL__"]];
NSDictionary *headers = [NSHTTPCookie requestHeaderFieldsWithCookies:cookies];
[request setAllHTTPHeaderFields:headers]; //A previously created NSMutableURLRequest
Run Code Online (Sandbox Code Playgroud)

现在您通常可以在NSURLConnection中使用NSURLRequest,它将在UIWebView中发送登录后创建的cookie

  • 好吧,永远不要将所有cookie发送到像@AntonioE这样的随机服务器.提示.是的,服务器可能会忽略它们,但如果它们不这样做,您可能会将登录/身份验证令牌发送到您不知道的服务器.这将是一个相当安全的漏洞...... (3认同)