1

我正在为本地 ios 应用程序开发 servlet。 现在我将一些东西放在会话中以便稍后检索,只要我们在 pc 浏览器中运行该网站,这个东西现在工作得很好,但我担心的是,因为pc浏览器总是在后台的每个请求中传递会话ID来完成响应(使用标头和特殊键),如何在ios本机应用程序中实现,我的意思是我将在创建会话时发送sessionId该应用程序将告诉 ios 开发人员在发送请求时发送该密钥(sessionId) ,并在服务器中获取与该sessionId关联的确切数据。

那么是否有可能实现这一点,或者我必须更改服务器代码(我根本不想要...... ;()......

请对此有所了解......谢谢......提前...... Ankur

4

3 回答 3

1

我知道您可以使用 HTTP Cookie 来做到这一点。即在服务器端存储一个 cookie 并使用 ASIHTTP/AFNetworking 框架检索它,

仅供参考 -带有 Cookie 的 Objective-C 异步 Web 请求

仅供参考-http: //brainwashinc.wordpress.com/2009/12/16/http-cookie-support-iphone/

对于 httpsession id,您可以使用 javascript 检索它。使用以下代码。

将以下内容存储为 session.js 并将其添加到 iOS 应用程序中的资产中。

<script type = "text/javascript">
function GetSession()

{
var SessionID = "<%=Session.SessionID%>";

alert(SessionID);
return SessionID;
}

</script>

用于从资源加载 js - 从资源加载 javascript 到 UIWebView

如果需要,您可以在 webview 中加载 javascript 并将其作为参数发送到您的服务器的另一个请求。

我认为这是解决您的问题的一种可能方法。除非有保持活动连接,否则我不知道是否有任何 HTTPSession 方法可以做到这一点。

于 2012-08-13T05:35:12.137 回答
1

iOS 应用程序应该自动处理您的 cookie,假设它使用NSURLConnection. 它不需要任何特殊的代码来处理它。

于 2012-08-13T05:50:11.227 回答
1

ASIHttpRequest 会自动为您管理它。看到这个,

[请求 setUseSessionPersistence:YES];

这个链接

于 2012-08-13T10:39:09.730 回答