Я импортировал 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/...
РЕДАКТИРОВАТЬ: Извините, забыл упомянуть, что я использую Delphi 2010
Спасибо всем за потраченное время.