Я импортировал WSDL (используя обнаружение автоверсии...), теперь, когда я пытаюсь его использовать, я получаю сообщение об ошибке, похожее на «отсутствует узел верхнего уровня, строка: 0», я потратил много часов на Google, чтобы найти исправление для этого, и я видел, что многие люди столкнулись с такой же проблемой, однако я не смог найти для нее исправления.
Я почти уверен, что многие разработчики исправили эту проблему, поэтому мой вопрос: КАК?!
При импорте WSDL он сгенерировал основной интерфейс, который имеет вспомогательные методы и специальную функцию, которая возвращает основной интерфейс, например:
type
array_of_string = array of string;
ASpecialInterface = interface(IInvokable)
//...
function ASpecialMethod(const dummyArg: string): array_of_string; stdcall;
//...
end;
и метод, который возвращает ASpecialInterface, например:
function GetASpecialInterface(const UseWSDL: Boolean; const addr: string; const ahttprio: THTTPRio): ASpecialInterface;
вот моя проблема:
procedure TMyForm.OnAButtonClick(Sender: Tobject);
var
LArrayOfString: array_of_string;
LSpecialIntf: ASpecialInterface;
begin
// this works without any issue whatsoever
LSpecialIntf := GetASpecialInterface; // I call it with default params
// the next code raises the exception mentioned above
LArrayOfString := LSpecialIntf.ASpecialMethod(EmptyStr); // no param passed since the dummyArg is dummy
end;
Теперь я не уверен, что это ценно, но соединение выполняется с использованием SSL, то есть https://domain.com/ а>...
EDIT: извините, забыл упомянуть, что я использую Delphi 2010
Спасибо всем за ваше время.