![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
отмена логина в веб-сервис [D7]
Akex © (2008-02-13 10:30:00)Пишу автоматический тестировщик веб-сервиса.
Если веб-сервис не пускает из-за проблем с безопасностью, выскакивает окно для ввода имени пользователя и пароля.
Вот код из SOAPHTTPTrans.pas Delphi 7:
while True do
begin
Check(not HttpSendRequest(Request, nil, 0, @StrStr.DataString[1], Length(StrStr.DataString)));
RetVal := InternetErrorDlg(GetDesktopWindow(), Request, GetLastError,
FLAGS_ERROR_UI_FILTER_FOR_ERRORS or FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS or
FLAGS_ERROR_UI_FLAGS_GENERATE_DATA, P);
case RetVal of
ERROR_SUCCESS: break;
ERROR_CANCELLED: SysUtils.Abort;
ERROR_INTERNET_FORCE_RETRY: {Retry the operation};
end;
end;
Неужели нет никакого способа добиться, чтобы при ошибке логина/пароля автоматически в RetVal присваивалось ERROR_CANCELLED?
Почему вообще разработчики Delphi не подумали о ERROR_ERROR?
Sandman25 (2008-02-13 11:54:00) [1]Написал наследника.
Долго плевался в адрес разработчиков.
Если уж используете поля для передачи параметров между функциями, сделайте их protected. Из-за private пришлось дублировать кучу кода.
Sandman25 (2008-02-13 10:55:00) [2]ANB (13.02.08 10:45) [1]
То есть кроме изменения исходников Delphi, другого способа нет?
Спасибо, я так и думал :(
Правда, этот код находится в вирутальной функции, так что можно попытаться написать своего наследника THTTPReqResp.
ANB (2008-02-13 10:45:00) [3]И чего тебе не нравится ?
Если мешает диалог, перепиши этот кусочек.
ЗЫ. Когда пишешь систему автотестирования, регулярно приходится бороться с разными граблями, и это еще не самая страшная.