Не существует конкретной «лучшей» платформы для использования веб-сервиса.
Однако некоторые платформы поддерживают автоматическую генерацию прокси-классов лучше, чем другие.
При попытке использовать встроенный импортер WSDL для Delphi 10.2 в Токио (используя SOAP 1.2 с Indy) мои запросы отправляются без какой-либо информации заголовка SOAP.
У меня нет опыта работы с .NET Core, но при использовании Delphi 10.2 вам необходимо вручную добавить (отправить) заголовок SOAP перед отправкой запроса.
Это можно сделать, приведя экземпляр веб-сервиса к ISOAPHeaders
Пример:
procedure TestSendHeader;
var
MyService: IMySoapWebservice;
header : TMySoapHeader;
begin
MyService := GetMySoapService();
(MyService as ISOAPHeaders).OwnsSentHeaders := True;
// Create header object
header := TMySoapHeader.Create;
// Fill header data
// header.xyz := ;
// 'Send' header with the request
(MyService as ISOAPHeaders).Send(header);
MyResponse := MyService.DoMyRequest();
end;
Установка OwnsSentHeaders
на true
освободит созданный объект заголовка после отправки запроса.
ПРИМЕЧАНИЕ: вы должны «отправлять» заголовок каждый раз, когда делаете запрос:
// 'Send' header with the request 1
(MyService as ISOAPHeaders).Send(header);
MyResponse := MyService.DoMyRequest1();
// 'Send' header with the request 2
(MyService as ISOAPHeaders).Send(header);
MyResponse := MyService.DoMyRequest2();
В этом случае не устанавливайте OwnsSentHeaders
в true
и освобождайте объект заголовка после того, как вы закончите, отправляя запросы.