Delphi - SOAP

Максим16 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
26.04.2021

Sydney 10.4.1. Ранее с soap никогда не работал. Попробовал получить методы через Component>>Import WSDL. Ссылка в прикреплённом файле!

Однако формируется с ошибкой, и главное - запрашивается в методах те параметры, которых нет.

Использовал HTTPRIO.

Задача.

1. Сделать импорт WSDL и предоставить корректный файл для проекта.

2. Показать в коде обращения к методам с параметрами (как в неработающем примере ниже).

Например (так обратиться не получается по импортированному WSDL, но общий смысл что во втором пункте хочу получить):

HTTPRIO1 := THTTPRIO.Create(nil);

HTTPRIO1.HTTPWebNode.UserName := 'user';

HTTPRIO1.HTTPWebNode.Password := 'password';

AddSoapHeaderSecurity(WS,'user','password');

Memo1.Lines.Add((HTTPRIO1 as IPOInsuranceService).getDictionaries('?'));

//

procedure AddSoapHeaderSecurity(aService: IInvokable; aUserName, aPassword: string);

var

Wsse: Security;

Headers: ISOAPHeaders;

begin

Wsse:=Security.Create;

Wsse.MustUnderstand:=True;

Wsse.UsernameToken:=UsernameToken.Create;

Wsse.UsernameToken.Id:=TGuid.NewGuid.ToString;

Wsse.UsernameToken.Username:=aUserName;

Wsse.UsernameToken.Password:=Password.Create;

Wsse.UsernameToken.Password.Type_:='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText';

Wsse.UsernameToken.Password.Text:=aPassword;

Wsse.Timestamp:=Timestamp.Create;

Wsse.Timestamp.Created:=Created.Create;

Wsse.Timestamp.Created.AsDateTime:=Now-1/24/60;

Wsse.Timestamp.Expires:=Expires.Create;

Wsse.Timestamp.Expires.AsDateTime:=Now+5/24/60;

Headers:=aService as ISOAPHeaders;

Headers.OwnsSentHeaders:=True;

Headers.Send(Wsse);

end;