В программе delphi (работающей как служба) мне нужно вызвать некоторые веб-сервисы.
Вызовы работают нормально, если базовые аутентификации не требуются. Вызовы также работают нормально, если требуется базовая аутентификация и имя пользователя / пароль (в BeforePost), используя:
InternetSetOption(Data, INTERNET_OPTION_USERNAME,...
InternetSetOption(Data, INTERNET_OPTION_PASSWORD,...
Но если требуется базовая аутентификация и имя пользователя / пароль не указаны, программа вызывает запрос на ввод имени пользователя / пароля (то есть NO-GO в сервисе).
Так, как я могу сигнализировать, что я не хочу подсказку, а вместо этого ошибку?
Проблема, насколько я могу судить, в функции SOAPHTTPTrans THTTPReqResp.Send (const ASrc: TStream): Integer; (строка 762 (второй вызов InternetErrorDlg в этом методе)).
EDIT1:
если я изменяю флаги в начале метода отправки (в SOAPHTTPTRANS), чтобы включить INTERNET_FLAG_NO_AUTH, он работает, как я хотел.
Но как мне это сделать, не меняя SAOPHTTPTrans (если это возможно)?
РЕДАКТИРОВАТЬ2:
ws := THTTPRIO.Create(Self);
ws.URL := 'http://excample.com/ws.asmx';
ws.HTTPWebNode.InvokeOptions := [soIgnoreInvalidCerts];
ws.HTTPWebNode.OnBeforePost := WebServiceCallBeforePost;
AvailabilityWebservice := (ws as AvailabilityServiceSoap);
sTemp := AvailabilityWebservice.GetVersion;
Где AvailabilityServiceSoap - это интерфейс, созданный с помощью средства импорта WSDL.