代码之家  ›  专栏  ›  技术社区  ›  Rudiger

使用NSHTTPCookieStorage访问会话cookie

  •  3
  • Rudiger  · 技术社区  · 14 年前

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

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

    它不返回名为JSESSIONID的会话并导致问题。如果我NSLog完整的nshttpookie存储,它会显示会话,因此它们就在那里,我就是找不到从存储中检索它们的方法。另外,我查看了cookie plist,会话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:[]>
    

    *请注意,很抱歉必须删除某些项目,它们与预期一致,与问题无关

    3 回复  |  直到 14 年前
        1
  •  2
  •   silvaric    12 年前

    我有这个问题,原因是因为NSHTTPCookieDomain。 饼干 必须具有相同的域

    .... 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>
    
        2
  •  0
  •   mvds    14 年前

    请把你的问题分解,首先检查

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

    返回您认为应该返回的内容。如果没有,请仔细看看 theCookie .

        3
  •  0
  •   more tension    12 年前

    -cookiesForURL: ? 如果URL没有与JSESSIONID cookie条目中指定的路径匹配的路径(例如。, http://example.com/path ),和 -厨师网址: