当前位置: 首页 > 知识库问答 >
问题:

如何使用Android应用程序管理会话

夔学智
2023-03-14

我有一个Android应用程序,我可以在其中向一个servlet发送多部分post。但我要把电话限制在每5分钟一次。有了web表单,我就可以使用cookie了。对于android应用程序,它不是这样工作的。我怎么才能让它工作呢?

共有1个答案

冷英光
2023-03-14

要维护与服务器的http会话,您可以遵循以下方法(假设您使用HttpClient进行通信):

每次服务器启动一个新会话时,它都会发送一个cookie名称set-cookie,其值包含可用作服务器会话ID的jessionid。因此,在代码中,每次对服务器进行网络调用时,都要检查响应中的cookie。如果此cookie存在,则检查它是否也有JessionID。下面的代码可以用来检查和解析Set-Cookie头中的jessionid。

HttpResponse response = httpClient.execute(get);

switch (response.getStatusLine().getStatusCode()) {
            case 200:
                          parseSessionID(response);
                          //process the response
                         break; 
}

private void parseSessionID(HttpResponse response) {
    try {

        Header header = response.getFirstHeader("Set-Cookie");

        String value = header.getValue();
        if (value.contains("JSESSIONID")) {
            int index = value.indexOf("JSESSIONID=");

            int endIndex = value.indexOf(";", index);

            String sessionID = value.substring(
                    index + "JSESSIONID=".length(), endIndex);

            Logger.d(this, "id " + sessionID);

            if (sessionID != null) {
                classStaticVariable= sessionID;
            }

        }
    } catch (Exception e) {
    }

}

将解析的id存储在以后可以访问的某个位置。我通常在network manager中创建一个静态字段,并将jessionid存储在该字段中。

private void setDefaultHeaders(HttpUriRequest httpRequest, Request request) {

        if (classStaticVariable!= null) {
            httpRequest.setHeader("Cookie", "JSESSIONID=" + classStaticVariable);
        }

    }
 类似资料:
  • 我可以理解上面链接中的代码,但我不确定IT管理员如何将配置文件推送到应用程序(在EMM控制台或其他地方)。任何想法都将受到高度赞赏。

  • Windows NT Option Pack 提供了在 Web 服务器上的 ASP 应用程序管理服务。例如,Internet 服务管理器为应用程序开发人员提供了一个使用简便的管理工具来设置应用程序的属性。另外,Active Server Pages 提供了允许用户的应用程序存储全局数据的脚本功能。本主题简要介绍部分应用程序管理功能,并提供到详细信息的链接。 启动和结束应用程序 当 Web 服务器第

  • 问题内容: 您如何在Java Desktop Swing应用程序中进行Hibernate会话管理?您是否使用一个会话?多个会议? 以下是有关此主题的一些参考资料: http://www.hibernate.org/333.html http://blog.schauderhaft.de/2008/09/28/hibernate-sessions-in-two-tier-rich-client-ap

  • 我正在使用Java Webstart技术开发一个Java桌面应用程序。我使用有效的证书对我的应用程序进行签名,并使用JnlpDownloadServlet进行部署。我用maven webstart插件准备了所有这些基础设施。 但是当我的证书过期,我不得不辞职并重新部署我的应用程序时,我在让webstart完全重新下载我的应用程序时遇到了问题。 据我所知,根据我可以从Internet收集的内容(We

  • Rails 是一个非常受欢迎的 Web 应用程序框架(从某种意义上说,是由于它被广泛应用而不是人们真正喜欢它)。 因此,在某些时候,你可能会被要求管理它。 本节要介绍的处方包含了安装一台运行 Rails 应用程序服务器所要做的绝大部分工作。 本处方假定你会使用 Nginx 和 Passenger 作为 Web 服务器, 然而你也可以轻松地修改本处方,使用 Apache 替换它。 操作步骤 创建 r

  • 问题内容: 我目前正在开发我的一个(相当大的)宠物项目,这是一个Swing应用程序,它本质上需要多线程。几乎所有用户交互都可能通过Internet从某些远程服务器获取数据,因为我既不能控制这些服务器,也不能控制Internet本身,因此不可避免的是需要较长的响应时间。EDT忙时,Swing UI显然无法重绘自身,因此所有远程服务器调用都需要由后台线程执行。 我的问题: 后台线程获取的数据被本地(内