我正在访问服务器的安全信息,并在请求时向应用程序发送一堆Cookies。问题是,其中一些Cookie仅适用于会话,当我使用以下代码时:
[NSHTTPCookie requestHeaderFieldsWithCookies:[[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:[NSURL URLWithString:theCookie]]
它不能返回名称为JSESSIONID的会话,从而导致问题。如果我NSLog完整的NSHTTPCookieStorage,则显示会话cookie,因此它们存在,只是我找不到一种方法将它们从存储中检索出来。此外,我查看了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 时,第一个 cookie 被返回,第二个 cookie 没有被返回。*注意:很抱歉不得不删除某些项目,它们是预期的并且与问题无关。
tr / a-z / z-a /
它们...),我们只能猜测:可能是大小写问题吗?一些Web服务器不区分大小写,而其他地方则不同。您能否提供一个自包含的示例来展示这种行为? - mvds