delphi webserver soap头(soap header)信息传送

  时间:2021-05-02 00:21:50  阅读量:296  评论数:0  作者:

文章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,信息,信息传送,传送


物联网周排行榜

    物联网月排行榜