Java 调用代码
采用 axis2,代码如下:
HTSAPServerServiceStub stub = new HTSAPServerServiceStub(
"http://IP:PORT/HTServer/services/HTSAPServer");
HTSAPServerServiceStub.LoginE login8 =
(HTSAPServerServiceStub.LoginE)
getTestObject(HTSAPServerServiceStub.LoginE.class);
Login l = new Login();
l.setStrDeviceId("设备编号");
l.setStrDeviceKey("密钥");
login8.setLogin(l);
LoginResponseE le = stub.login(login8);
LoginResponse lr = le.getLoginResponse();
String msg = lr.get_return();转delphi的代码
采用 axis2,代码如下:
HTSAPServerServiceStub stub = new HTSAPServerServiceStub(
"http://IP:PORT/HTServer/services/HTSAPServer");
HTSAPServerServiceStub.LoginE login8 =
(HTSAPServerServiceStub.LoginE)
getTestObject(HTSAPServerServiceStub.LoginE.class);
Login l = new Login();
l.setStrDeviceId("设备编号");
l.setStrDeviceKey("密钥");
login8.setLogin(l);
LoginResponseE le = stub.login(login8);
LoginResponse lr = le.getLoginResponse();
String msg = lr.get_return();转delphi的代码
1、直接借助http工具抓包,分析下登录报文及返回;
2、java 登录相关程序反编译,分析下 HTSAPServerServiceStub 做了什么;
3、设备端的登录接口文档,然后依据文档实现;Delphi 实现HttpClient,可以用 IdHttp组件
login = class; { "http://server.cdt.com" }
login = class(TRemotable)
private
FstrDeviceId: WideString;
FstrDeviceKey: WideString;
published
property strDeviceId: WideString read FstrDeviceId write FstrDeviceId;
property strDeviceKey: WideString read FstrDeviceKey write FstrDeviceKey;
end;
HTSAPServer = interface(IInvokable)function login(const parameters: login): loginResponse; stdcall;
initialization
InvRegistry.RegisterInterface(TypeInfo(HTSAPServer), 'http://server.cdt.com', 'utf-8');
InvRegistry.RegisterInvokeOptions(TypeInfo(HTSAPServer), ioDocument); //jia
InvRegistry.RegisterDefaultSOAPAction(TypeInfo(HTSAPServer), '');
RemClassRegistry.RegisterXSClass(login, 'http://server.cdt.com', 'login');///下面调用login函数出错,谁帮助写一下怎么调用?procedure TForm1.btn1Click(Sender: TObject);
var lginRse:loginResponse ;
login1:login;begin login1:=login.Create ;
lginRse:=loginResponse.Create ; login1.strDeviceId :='123456' ;
login1.strDeviceKey :='1234567890' ;
try
lginRse:=(htpr1 as HTSAPServer).login(login1) ;
mmo1.Text :=lginRse.return ;
finally
login1.Free ;
lginRse.Free ;
end;
end;
///返回 :XML文档必须有一个顶层元素 好像HTSAPServerServiceStub只是顶层元数,无意义,我想只上面的代码加一层顶层元素试试,不知怎么加。
然后用http的post函数构造就可以了