在做一個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資料內容
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/282171.html
標籤:其他
上一篇:Android SDK 提供的3套音頻播放的API之玩轉SoundPool
下一篇:ESP32基礎應用之http實驗
