unit ALEService;interfaceuses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns;typeEmptyParms = class; { "urn:epcglobal:ale:wsdl:1" }EmptyParms = class(TRemotable)
private
public
constructor Create; override;
published
end;GetALEID = EmptyParms; { "urn:ale.logicalloy.com"[L] }
GetALEIDResult = type WideString; { "urn:ale.logicalloy.com"[L] }function getALEID(const parms: GetALEID): GetALEIDResult; stdcall;implementationconstructor EmptyParms.Create;
begin
inherited Create;
FSerializationOptions := [xoLiteralParam];
end;initialization
RemClassRegistry.RegisterXSInfo(TypeInfo(GetALEID), 'urn:ale.logicalloy.com', 'GetALEID');
RemClassRegistry.RegisterXSInfo(TypeInfo(GetALEIDResult), 'urn:ale.logicalloy.com', 'GetALEIDResult');
private
public
constructor Create; override;
published
end;GetALEID = EmptyParms; { "urn:ale.logicalloy.com"[L] }
GetALEIDResult = type WideString; { "urn:ale.logicalloy.com"[L] }function getALEID(const parms: GetALEID): GetALEIDResult; stdcall;implementationconstructor EmptyParms.Create;
begin
inherited Create;
FSerializationOptions := [xoLiteralParam];
end;initialization
RemClassRegistry.RegisterXSInfo(TypeInfo(GetALEID), 'urn:ale.logicalloy.com', 'GetALEID');
RemClassRegistry.RegisterXSInfo(TypeInfo(GetALEIDResult), 'urn:ale.logicalloy.com', 'GetALEIDResult');
解决方案 »
- 請教post,applyUpdates,commitUpdates,Commit的区别,最好有代码证明
- 关闭窗体的问题
- SQL 简单问题~~帮忙看一下~~
- 为何Double类型的数组经赋值后小数位被自动截取
- 大哥们救命,一个简单视图,100分
- ReceiveBuf???
- 怎么定义一个自己的定时器?
- 怎样用TAPI实现来电显示(delphi环境)?
- access与sql server的日期问题(特急,请高手一定看一下,分不是问题)
- 求教,delphi编写ocx掉用c的DLL的问题
- delphi下intraweb开发的exe文档如何在iis下面发布?
- 如何在memo.text是找出'这里面的内容'
function login(const parms: Login): LoginResult; stdcall;
它的参数login应该怎么声明,然后要根据参数也就是login来判断loginresult的sucess是否通过验证
unit ALEService; interface uses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns; type EmptyParms = class; { "urn:epcglobal:ale:wsdl:1" }
Login = class; { "urn:ale.logicalloy.com" }
LoginResult = class; { "urn:ale.logicalloy.com" }EmptyParms = class(TRemotable)
private
public
constructor Create; override;
published
end; GetALEID = EmptyParms; { "urn:ale.logicalloy.com"[L] }
GetALEIDResult = type WideString; { "urn:ale.logicalloy.com"[L] } Login = class(TRemotable)
private
Fusername: WideString;
Fpassword: WideString;
public
constructor Create; override;
published
property username: WideString read Fusername write Fusername;
property password: WideString read Fpassword write Fpassword;
end;LoginResult = class(TRemotable)
private
FloginTime: TXSDateTime;
FsessionId: WideString;
Fsuccess: Boolean;
Fusername: WideString;
public
constructor Create; override;
destructor Destroy; override;
published
property loginTime: TXSDateTime read FloginTime write FloginTime;
property sessionId: WideString read FsessionId write FsessionId;
property success: Boolean read Fsuccess write Fsuccess;
property username: WideString read Fusername write Fusername;
end;ALEServicePortType = interface(IInvokable)
['{89261E5F-CB3D-B520-AB70-8D333AB656C3}']
function getALEID(const parms: GetALEID): GetALEIDResult; stdcall;
function login(const parms: Login): LoginResult; stdcall;
end;function GetALEServicePortType(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): ALEServicePortType;implementation function GetALEServicePortType(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): ALEServicePortType;
const
defWSDL = 'E:\Study\ALE Server\ALE Server\API\src\ALEService.wsdl';
defURL = 'http://localhost:8080/api/services/ALEService';
defSvc = 'ALEService';
defPrt = 'ALEServicePort';
var
RIO: THTTPRIO;
begin
Result := nil;
if (Addr = '') then
begin
if UseWSDL then
Addr := defWSDL
else
Addr := defURL;
end;
if HTTPRIO = nil then
RIO := THTTPRIO.Create(nil)
else
RIO := HTTPRIO;
try
Result := (RIO as ALEServicePortType);
if UseWSDL then
begin
RIO.WSDLLocation := Addr;
RIO.Service := defSvc;
RIO.Port := defPrt;
RIO.HTTPWebNode.UseUTF8InHeader := True ;//解决中文乱码问题
end else
RIO.URL := Addr;
finally
if (Result = nil) and (HTTPRIO = nil) then
RIO.Free;
end;
end;constructor EmptyParms.Create;
begin
inherited Create;
FSerializationOptions := [xoLiteralParam];
end; constructor Login.Create;
begin
inherited Create;
FSerializationOptions := [xoLiteralParam];
end;constructor LoginResult.Create;
begin
inherited Create;
FSerializationOptions := [xoLiteralParam];
end;destructor LoginResult.Destroy;
begin
if Assigned(FloginTime) then
FloginTime.Free;
inherited Destroy;
end;initialization
RemClassRegistry.RegisterXSInfo(TypeInfo(GetALEID), 'urn:ale.logicalloy.com', 'GetALEID');
RemClassRegistry.RegisterXSInfo(TypeInfo(GetALEIDResult), 'urn:ale.logicalloy.com', 'GetALEIDResult');
RemClassRegistry.RegisterXSClass(Login, 'urn:ale.logicalloy.com', 'Login');
RemClassRegistry.RegisterSerializeOptions(Login, [xoLiteralParam]);
RemClassRegistry.RegisterXSClass(LoginResult, 'urn:ale.logicalloy.com', 'LoginResult');
RemClassRegistry.RegisterSerializeOptions(LoginResult, [xoLiteralParam]);