【发布时间】:2011-03-16 18:48:52
【问题描述】:
我正在访问服务器的安全信息,它会根据请求向应用程序发送一堆 cookie。问题是一些 cookie 只是会话,当我使用时:
[NSHTTPCookie requestHeaderFieldsWithCookies:[[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:[NSURL URLWithString:theCookie]]
它不会返回名称为 JSESSIONID 的会话并导致问题。如果我对完整的 NSHTTPCookieStorage 进行 NSLog 记录,它会显示会话,以便它们存在,我只是找不到从存储中检索它们的方法。另外,我查看了 cookie plist 并且会话 cookie 没有存储在那里,但我认为这只是因为它们是基于会话的。
感谢任何帮助。
编辑:这是我要求所有 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 时,第一个会返回,第二个不会。
*请注意,对于必须删除某些项目感到抱歉,它们符合预期,与问题无关
【问题讨论】:
-
没有实际的 url 或派生值(就我而言
tr/a-z/z-a/他们......)我们只能猜测:这可能是一个案例问题吗?一些网络服务器不区分大小写,而世界其他地方则不然。您能否提供一个显示行为的自包含示例? -
这不是服务器问题,因为实际的 Cookie 没有从存储中返回,我认为这可能是命名问题,因为有多个 JSESSIONID 条目。我什至手动输入了一个具有相似详细信息但 url 不同的 cookie,也无法检索它。虽然名称相同,但 JSESSIONID。
标签: iphone cookies jsessionid nshttpcookie