Форум: "Сети";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];
ВнизРабота с Indy Найти похожие ветки
← →
SDF (2003-11-24 08:19) [40]Продолжим...
В итоге накопалось, что нету пары dll. Скачено, поставлено - не работает. Кто подскажет дальше...
Klyonov -не могу ответить на твое мыло...
← →
SDF (2003-12-02 15:14) [41]На меня тут куча траблов свалилось, посему пришлось завязать с этим делом...
Седня возобновил копание ....
Тут, короче или я тупой, или одно из двух.
Итак...
После мыканиям по методам класса TIdHttp залетаем сюда
function TIdCustomHTTP.DoOnProxyAuthorization(ARequest: TIdHTTPRequest; AResponse: TIdHTTPResponse): Boolean;
вот "проблемный код"
4* if Assigned(FOnSelectProxyAuthorization) then
begin
OnSelectProxyAuthorization(self, Auth, AResponse.ProxyAuthenticate);
end;
ProxyParams.Authentication := Auth.Create;
end;
1* result := Assigned(OnProxyAuthorization);
// Clear password and reset autorization if previous failed
2* if (AResponse.FResponseCode = 407) then begin
ProxyParams.ProxyPassword := "";
ProxyParams.Authentication.Reset;
end;
if Result then
begin
with ProxyParams.Authentication do
begin
Username := ProxyParams.ProxyUsername;
Password := ProxyParams.ProxyPassword;
AuthParams := AResponse.ProxyAuthenticate;
end;
result := false;
repeat
3* case ProxyParams.Authentication.Next of
wnAskTheProgram: // Ask the user porgram to supply us with authorization information
begin
if Assigned(OnProxyAuthorization) then
begin
ProxyParams.Authentication.Username := ProxyParams.ProxyUsername;
ProxyParams.Authentication.Password := ProxyParams.ProxyPassword;
OnProxyAuthorization(self, ProxyParams.Authentication, result);
if result then begin
ProxyParams.ProxyUsername := ProxyParams.Authentication.Username;
ProxyParams.ProxyPassword := ProxyParams.Authentication.Password;
end
else begin
break;
end;
end;
end;
wnDoRequest:
begin
result := true;
break;
end;
wnFail:
begin
result := False;
Break;
end;
end;
until false;
end;
(1*) Выделенный фрагмент , имхо, олицетворяет (не)успешное выполнения всей авторизации на проксе.
Гуд, ежели так, ставим обработку события.
(2*)Далее следует код, который лично меня, приводит в заблуждение.
Зачем, спрашивается, скидывать настройки прокси? Ну да ладно, судить разработчиков - дело неблагодарное...
Идем далее....
(3*)Насколько я понимаю выделенную строку выбирается то, что мы будем делать далее.
Из 3-х возможных вариантов, в данном случае нас устраивает только первый, ведь авторизацию мы так и не получили...
Пойдем внуть Функции Next.
Я не буду приводить код той функции, скажу только, что нужный нам резалт мы получим, при условии, что занулен параметр авторизации Login.
Тепрь поднимемся выше по коду (4*).
Оказывается, это событие тоже нужно обрабатывать, причем "//" нам не обойтись, нужно занулить Логин и установить result=True;
И все равно, не авторизируется и баста...
Копаем дальше.
← →
SDF (2003-12-03 09:58) [42]Может кто-нить поможет, а?
← →
SDF (2003-12-04 06:59) [43]Ладно... Придется писать свое... Заодно и разберусь получшее.
Страницы: 1 2 вся ветка
Форум: "Сети";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.031 c