iphone - 使用 NSHTTPCookieStorage 访问 session cookie

标签 iphone cookies jsessionid nshttpcookie

我正在访问服务器的安全信息,它会根据请求向应用程序发送一堆 cookie。问题是有些 cookie 仅用于 session ,当我使用时:

[NSHTTPCookie requestHeaderFieldsWithCookies:[[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:[NSURL URLWithString:theCookie]]

它不会返回名为 JSESSIONID 的 session 并导致问题。如果我 NSLog 完整的 NSHTTPCookieStorage 它会显示 session session ,因此它们就在那里,我只是找不到从存储中检索它们的方法。另外,我查看了 cookie plist, session cookie 没有存储在那里,但我认为这只是因为它们是基于 session 的。

感谢任何帮助。

编辑:这是我请求所有 cookie 时得到的片段:

<NSHTTPCookie version:0 name:@\"TheNameOfTheCookie\" value:@\"A variable number\" expiresDate:@\"(null)\" created:@\"301196844.000000\" sessionOnly:TRUE domain:@\"THE URL\" path:@\"/\" secure:FALSE comment:@\"(null)\" commentURL:@\"(null)\" portList:[]>

<NSHTTPCookie version:0 name:@\"JSESSIONID\" value:@\"A variable number\" expiresDate:@\"(null)\" created:@\"301196866.000000\" sessionOnly:TRUE domain:@\"The Same URL as above\" path:@\"/path\" secure:FALSE comment:@\"(null)\" commentURL:@\"(null)\" portList:[]>

现在,当我根据上述 cookie 中的 URL 请求 cookie 时,第一个会返回,第二个不会返回。

*请注意,对于必须删除某些项目感到抱歉,它们符合预期并且与问题无关

最佳答案

我遇到了这个问题,原因是因为 NSHTTPCookieDomain。 cookie必须具有相同的域

.... domain:@\"THE URL\" path:@\"/\" ....
.... domain:@\"The Same URL as above\" path:@\"/path\" ....

必须是

.... domain:@\"NAME-DOMAIN" path:@"/" ....

我只是改变它,并放置相同的域和路径并且有效

我的 JSESSIONID:

<NSHTTPCookie version:0 name:"JSESSIONID" value:"7C9B0...........EB5" expiresDate:(null) created:2012-07-06 16:14:26 +0000 (3.63284e+08) sessionOnly:TRUE domain:"FOO" path:"/" isSecure:FALSE>

关于iphone - 使用 NSHTTPCookieStorage 访问 session cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3262142/

相关文章:

ios - object_setInstanceVariable 与 CGPoint

ios - 在运行时使用客户端 ID 控制的 Paypal

ios - 为什么 UILabel 的边框在滚动 tableview 后设置?

javascript - 如何使用 Liberty 更改生成的 JSESSIONID 的长度?

iPhone:在 UIScrollview 中处理 400 个 UILabels 的最佳方法

javascript - 清除phonegap中的cookie/禁用phonegap使用cookie

c# - "Removing"cookie 不工作

tomcat - 如何设置 java servlet 使用的 cookie 版本(0 或 1)?

jsp - jsessionid出现在jSTL <c:url ..>标记生成的所有URL中

authentication - WSO2 检查用户是否已通过 JSESSIONID 身份验证, session 是否仍然有效