0

有什么方法可以在 Objective-C 中捕获和存储 $​​_SESSION 吗?我知道会话和 cookie 都非常交织在一起,那么是否可以使用 NSHTTPCookie 来捕获它或其他什么?或者这是我必须在 php 代码中而不是在我的 Objective-C 代码中处理的东西才能使它工作?

我可以告诉你我想做什么。我正在尝试通过 NSMutableURLRequest 将一些信息发送到服务器,这不是问题,然后我试图捕获我将收到的会话。

4

1 回答 1

2

会话存储在服务器端,因此存储在会话中的数据对客户端不可用,除非服务器选择以其他方式发送。唯一传递给客户端和返回的是会话标识符,当客户端发送请求时,服务器使用它来定位正确的会话。

会话标识符通常在 cookie 中传递,但 cookie 的名称会因服务器而异。PHP 经常使用PHPSESSID,但它可以配置为php.ini.

要获取从服务器传递到您的应用程序的所有 cookie(如果已设置,它将为您提供会话 cookie)是这样做的;

NSHTTPCookieStorage *cookieStore = [NSHTTPCookieStorage sharedHTTPCookieStorage];
NSArray *cookies = [cookieStore cookiesForURL:url];

...传递一个指向服务器的 NSURL 对象。这将返回一个NSArrayof NSHTTPCookie,您可以循环并获取所需的信息。

于 2013-08-17T13:40:07.727 回答