【问题标题】:Delphi XE5 REST/Android Client "Session has expired"Delphi XE5 REST/Android 客户端“会话已过期”
【发布时间】:2014-05-22 01:37:51
【问题描述】:

我有一个REST Server 和一个Android Client,都在Deplhi Xe5

android 客户端成功连接到 Rest 服务器。 在我的服务器中,我有一个 TDSHttpWebDispatcherSessionTimeout=1200000(20 分钟)

所以当 android 中的用户超过 20 分钟不使用该应用时, 向 REST 服务器发出请求时收到“会话已过期”错误。

我已经在客户端应用程序的DSRestConnection 中设置了PresserveSessionId=False,因此不会出现会话超时错误,但它会使应用程序变慢,因为对于 REST 服务器的每个请求,它都会创建一个新会话。

我想保留PresserveSessionId=True 以获得更好的性能,当会话过期(20 分钟后)捕获“会话已过期”错误并为客户端请求新会话

我怎样才能做到这一点?

谢谢

对不起我的英文!,希望它是可读的

【问题讨论】:

    标签: android delphi rest session-timeout delphi-xe5


    【解决方案1】:

    有一份关于此here 的开放式质量控制报告。显而易见的解决方法是在每次调用时创建一个 Try..Except 块,并在该特定异常请求上创建一个新会话。

    【讨论】:

    • 谢谢,我通过在服务器端设置TDSHttpWebDispatcher.SessionTimeout=0 解决了这个问题,所以会话永远不会过期
    猜你喜欢
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-24
    • 2012-02-01
    • 2016-08-04
    • 2011-06-14
    相关资源
    最近更新 更多