zoukankan      html  css  js  c++  java
  • 基于HTTP的DataSnap session管理

    uses System.StrUtils, Datasnap.DSSession, SessionStoreObjectUI;

    function TServerMethods1.EchoString(Value: string): string; begin   Result := Value; end;

    function TServerMethods1.ReverseString(Value: string): string; begin   Result := System.StrUtils.ReverseString(Value); end;

    //客户端调用http storeobject方法存储session key

    function TServerMethods1.StoreObject(key, a, b, c: string): string; var   Session: TDSSession;   Inst: TMySessionClass;   Dest: String; begin   Session := TDSSessionManager.GetThreadSession;   if Assigned(Session) then   begin     Inst := TMySessionClass.Create;     Inst.a := a;     Inst.b := b;     Inst.c := c;     Session.PutObject(key, Inst);

        //return the URL wish Session ID in it for     //testing getting the session data back     Dest := 'http://localhost:8080/datasnap/rest/TServerMethods1/GetObject/' + key + '?sid=' + Session.SessionName;

        Form3.SetThenText(Dest);

        Exit(Dest);   end;

      Result := 'Failed to add the object to the session'; end;

    //客户端调用http getobject获得session内容

    procedure TServerMethods1.GetObject(key: string; out a, b, c: string); var   Session: TDSSession;   Inst: TMySessionClass; begin   Session := TDSSessionManager.GetThreadSession;   if Assigned(Session) then   begin     Inst := TMySessionClass(Session.GetObject(key));     if Assigned(Inst) then     begin       a := Inst.a;       b := Inst.b;       c := Inst.c;       Exit;     end;   end;   a := 'Failed to load data for key: ' + key; end;

  • 相关阅读:
    Bamboo CI 使用的一些记录
    fork 与 branch、clone 的区别
    使用--ignore-scripts解决npm/yarn安装依赖失败问题
    gyp ERR! find VS gyp ERR! find VS msvs_version not set from command line or npm config gyp ERR! find
    sdk manager 打不开解决方法
    appium
    北京幼升小
    MySQL中limit的问题
    初始社保费管理客户端的单位编号
    flutter BackdropFilter的毛玻璃效果使用
  • 原文地址:https://www.cnblogs.com/HuiLove/p/3958230.html
Copyright © 2011-2022 走看看