文章delphi webserver soap头(soap header)信息传送包含有源码,做相关工作的朋友可以参考源码改下就可以用于项目中去。感谢作者开源分享。
在做一个webserver 接口的时候,需要在soap header传送登录后的SessionId,通常delphi生成接口后传送的XML里是不会有包括header数据信息的,这就只能是写代码增加上去。
那么,首先我们需要先自行定义一个类:
const
IS_TEXT = $0020; {一个常量,也很重要}
//这个定义了 Header信息基础类
TSessionIdHeader = class(TSOAPHeader)
private
FValue: string;
published
property Value: string Index (IS_TEXT) read FValue write FValue;
end;
SessionId = class(TSessionIdHeader); {使用SessionId为Header的数据类}
这里的IS_TEXT 是很重要的内容,有他后,在生成的XML数据里不会生成Value。
需要引用:Soap.SOAPHTTPClient
类生成后,需要在initialization中增加一个注册:
initialization
//下面这条很重要
InvRegistry.RegisterHeaderClass(TypeInfo(WS), SessionId, '', '');
调用时需要增加的内容:
var
vSessionIdHeader:SessionId;
begin
vSessionIdHeader:=SessionId.Create;//创建这个类
vSessionIdHeader.Value:='SessionId';//给SessionId赋值
vGLWS := GetWS;
(vGLWS as ISOAPHeaders).Send(vSessionIdHeader);//这行代码将会让XML里增加上header数据内容
关键词:webserver
soap header
soap头信息传送
header传送
XE webserver,delphi,webserver,信息,信息传送,传送