ecardutilxmlrpcut.pas

来自「delphi的XMPRPC通讯例子」· PAS 代码 · 共 105 行

PAS
105
字号
unit ECardUtilXMLRPCUt;

interface
uses
  Windows,SysUtils,Classes,ECardXMLRPCUt,SystemInfoUt;
type
  TECardUtilXMLRPC = class
  private
    ECUT_ServerURL:string;
    ECUT_ECardXMLRPC: TECardXMLRPC;
    { Private declarations }
  public
    function ECUT_Init:Boolean;
    function ECUT_GetSysDict(DictType:string;var ResultCode: array of string):Boolean;
    function ECUT_GetSysTime(var SysTime:String;var ResultCode: array of string):Boolean;
    { Public declarations }
  end;

  var
  ECardUtilXMLRPC:TECardUtilXMLRPC;

implementation
uses
ConstValueUt;

function TECardUtilXMLRPC.ECUT_Init:Boolean;
begin
    Result:=false;
    ECUT_ECardXMLRPC:=TECardXMLRPC.Create('');
    ECUT_ServerURL:=SIU_RD_SystemServerConfig.UtilServerURL;
    Result:=true;
end;

function TECardUtilXMLRPC.ECUT_GetSysDict(DictType:string;var ResultCode: array of string):Boolean;
var
InfoXml:String;

begin
Result:=false;
 try

   with ECUT_ECardXMLRPC do begin
    EC_Request.URL :=ECUT_ServerURL;
    EC_Request.MethodName := 'system.system_dict';
    EC_Request.Params.Param.Clear;
    EC_Response.params.param.Clear;
    EC_Request.Params.Param.AddString(DictType);
    EC_Request.Params.Param.AddString(SIU_RD_OPSerInfo.sid);
    EC_Response.ProcessRequest(EC_Request);
    InfoXml:='';
      if EC_Response.IsFault then
       exit
      else
        begin
          InfoXml:=EC_Response.params.param.Strings[0];
          DecodeResultErr(InfoXml,ResultCode);
          if ResultCode[0]='0' then
           SysDictDecode(InfoXml,DictType,ResultCode);
        end;
    end;

  except
    exit;
  end;
Result:=true;

end;

function TECardUtilXMLRPC.ECUT_GetSysTime(var SysTime:String;var ResultCode: array of string):Boolean;
var
InfoXml:string;

begin
 Result:=false;
 try

   with ECUT_ECardXMLRPC do begin
    EC_Request.URL :=ECUT_ServerURL;
    EC_Request.MethodName := 'system.system_time';
    EC_Request.Params.Param.Clear;
    EC_Response.params.param.Clear;
    EC_Response.ProcessRequest(EC_Request);
    InfoXml:='';
      if EC_Response.IsFault then
       exit
      else
        begin
          InfoXml:=EC_Response.params.param.Strings[0];
          DecodeResultErr(InfoXml,ResultCode);
          if ResultCode[0]='0' then
          begin
            SysVrDecode(CT_SVR_DecodeType[0],InfoXml);
            SysTime:=InfoXml;
          end;
        end;
    end;

  except
    exit;
  end;
Result:=true;

end;
end.
 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?