Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2009, 14:33   #1
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
Стрелка IdHTTP авторизироваться на сайте

Есть сайт www.hack-home.net
Для авторизации, при заходе на сайт через браузер, выходит окошко с полями для ввода логина и пароля.
Логин и пароль для захода одинаковы(key). Использую idHTTP и кукименеджер. Пробывал писать в запросе инди даже так key:key@www.hack-home.net ноль внимания, возвращает "ошибка 401". В браузере нормально работает. Пробывал по всякому, что можно сделать чтобы авторизировало, а потом смог получить текст html страницы?
Код:
procedure TForm1.Button2Click(Sender: TObject);
var
  Uri :TIdURI;
  //SSLIO :TidSSLIOHandlerSocket;
begin
 //IdCookieManager1.CookieCollection.Clear;
 Uri := TIdURI.Create;
 //SSLIO := TidSSLIOHandlerSocket.Create(IdHTTP1);
 Button2.Enabled := False;
  try
 //IdHTTP1.AuthRetries := 1;
 IdHTTP1.Host := 'www.hack-home.net';
 IdHTTP1.HandleRedirects := True;
 IdHTTP1.HTTPOptions := [hoInProcessAuth];
 //IdHTTP1.IOHandler := SSLIO;
 //SSLIO.SSLOptions.Method := sslvTLSv1; // sslvSSLv23
 IdHTTP1.Request.UserAgent := 'Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.2.15 Version/10.10';
 IdHTTP1.Request.BasicAuthentication := True;
 IdHTTP1.Request.Username := 'key';
 IdHTTP1.Request.Password := 'key';
                                          ///  http://key:key@www.hack-home.net
 Mmo1.Lines.Text := IdHTTP1.Get(Uri.URLEncode('http://www.hack-home.net'));
  finally
 Uri.Free;
 //SSLIO.Free;
 Button2.Enabled := True;
  end;
end;
Delphi 7

Последний раз редактировалось Alter; 14.12.2009 в 14:39.
Alter вне форума Ответить с цитированием
Старый 15.12.2009, 10:24   #2
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

Посмотрел с помощью снифера из Firefox, что шлёт. Вот:
Цитата:
(Request-Line) GET / HTTP/1.1
Host www.hack-home.net
User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.5) Gecko/20091102 MRA 5.5 (build 02842) Firefox/3.5.5
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language ru,en-us;q=0.7,en;q=0.3
Accept-Encoding gzip,deflate
Accept-Charset windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive 300
Connection keep-alive
Authorization NTLM TlRMTVNTUAADAAAAGAAYAFYAAAAYABgAbgA AAAAAAABAAAAABgAGAEAAAAAQABAARgAAAA AAAAAAAAAABYIIAGsAZQB5AEsATwBNAFAAV QBUAEUAUgAkfC5o3Wm+egAAAAAAAAAAAAAA AAAAAAB0HjBTSbtFkHWFMeOH2yg0LfIF1Z4 X8js=
Сделал те же параметры что и в данных браузера:
Код:
procedure TForm1.Button3Click(Sender: TObject);
var
  Uri :TIdURI;
begin
 Uri := TIdURI.Create;
 Button3.Enabled := False;
  try
 IdHTTP1.Request.Host := 'www.hack-home.net';
 IdHTTP1.HTTPOptions := [hoInProcessAuth];
 IdHTTP1.Request.UserAgent := 'Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.2.15 Version/10.10';
 IdHTTP1.Request.Accept := 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
 IdHTTP1.Request.AcceptLanguage := 'ru,en-us;q=0.7,en;q=0.3';
 IdHTTP1.Request.AcceptEncoding := 'gzip,deflate';
 IdHTTP1.Request.AcceptCharSet := 'windows-1251,utf-8;q=0.7,*;q=0.7';
 IdHTTP1.Request.Connection := 'keep-alive';
 IdHTTP1.Request.Username := 'key';
 IdHTTP1.Request.Password := 'key';
 IdHTTP1.Request.BasicAuthentication := False;
 IdHTTP1.Request.Referer := 'www.hack-home.net';
 Mmo1.Lines.Text := IdHTTP1.Get('http://www.hack-home.net');
  finally
 Uri.Free;
 Button3.Enabled := True;
  end;
end;
Но при вызове этой процедуры, появляется окно:

* Помогите заставить программу работать, очень нужно *

Ллоги других запросов, запаковал в архив.
Вложения
Тип файла: rar Логи.rar (2.3 Кб, 18 просмотров)
Alter вне форума Ответить с цитированием
Старый 15.12.2009, 10:51   #3
Usov
Форумчанин
 
Аватар для Usov
 
Регистрация: 29.09.2009
Сообщений: 228
По умолчанию

потестил твой пример у себя - ошибки вышеописанной у меня не возникло, было только сообщение о неудачной авторизации: "HTTP/1.1 401 Unauthorized."
попробуй отсниферить свою прогу и сравнить результат с броузером

Последний раз редактировалось Usov; 15.12.2009 в 11:28.
Usov вне форума Ответить с цитированием
Старый 15.12.2009, 11:29   #4
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

Цитата:
Сообщение от Usov Посмотреть сообщение
похоже происходит редирект на ssl ресурс, попробуй отсниферить свою прогу и сравнить результат с броузером
Отдельный, нормальный снифер, который показывал в том же формате, что дополнение из фаерфокс, не нашел. Могу смотреть только то что в фаерфокс происходит. Может у кого есть подходящий снифер.

И как туда NTLM прикрутить?
Цитата:
Authorization NTLM TlRMTVNTUAADAAAAGAAYAFYAAAAYABgAbgA AAAAAAABAAAAABgAGAEAAAAAQABAARgAAAA AAAAAAAAAABYIIAGsAZQB5AEsATwBNAFAAV QBUAEUAUgAkfC5o3Wm+egAAAAAAAAAAAAAA AAAAAAB0HjBTSbtFkHWFMeOH2yg0LfIF1Z4 X8js=
Alter вне форума Ответить с цитированием
Старый 15.12.2009, 13:44   #5
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

А подключить SSL не пробовали?
Они корректно работают только на 10.5.5
TwiX вне форума Ответить с цитированием
Старый 15.12.2009, 14:17   #6
Usov
Форумчанин
 
Аватар для Usov
 
Регистрация: 29.09.2009
Сообщений: 228
По умолчанию

Цитата:
Сообщение от TwiX Посмотреть сообщение
А подключить SSL не пробовали?
Они корректно работают только на 10.5.5
1) там нет никакого ssl соединения
2) неправда, у меня инди 10.2.3 и никогда никаких проблем с ssl небыло

снифер, не скажу как настраивать - непомню, знаю что у меня работатет когда в проге ставишь IP 127.0.0.1 и порт 50000, на делфовых приложениях иногда виснет при повторном обращении
Вложения
Тип файла: rar Odysseus.rar (1.05 Мб, 20 просмотров)

Последний раз редактировалось Usov; 15.12.2009 в 14:41.
Usov вне форума Ответить с цитированием
Старый 15.12.2009, 15:29   #7
AquaKlaster
Delphi,Python,PHP
Форумчанин
 
Аватар для AquaKlaster
 
Регистрация: 04.04.2009
Сообщений: 138
По умолчанию

Подключите SSL и киньте библиотеки. Должно заработать=)
AquaKlaster вне форума Ответить с цитированием
Старый 15.12.2009, 15:44   #8
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Цитата:
Но при вызове этой процедуры, появляется окно:
Убери из IdHttp SSLIOHandler. Зачем ты его указываешь, когда общение происходит по обычному HTTP...
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 15.12.2009, 17:21   #9
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
Вопрос

SSL само по себе вылазит. Версия: Indy v10.5.7
Цитата:
Убери из IdHttp SSLIOHandler.
Это было раньше, сейчас во втором варианте без IOHandler.

Цитата:
Подключите SSL и киньте библиотеки
Какие можете предложить для этой версии indy, и где их скачать? Есть какие нибудь особенности подключения SSL библиотек к проекту?

Вот все файлы проекта(demo):
Вложения
Тип файла: rar DemoA.rar (254.2 Кб, 33 просмотров)

Последний раз редактировалось Alter; 15.12.2009 в 17:34.
Alter вне форума Ответить с цитированием
Старый 16.12.2009, 14:57   #10
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
Восклицание

Нашел SSL DLL и поместил в system32. Первая авторизация проходит успешно, и я получаю HTML код главной страницы. Но, если снова хочу получить её тем же способом(или просто через Get, без повторного задания параметров IdHTTP) вываливается снова ошибка 401. Если перезапустить программу, то могу снова получать страницу. Очистка списка куки в кукименеджере не помогает избавится от ошибки 401, при повторном запросе страницы. Это можно как-то обойти?
Значит ли это, что мне придётся динамически создавать все Indy компоненты, при каждом запросе нужных страниц?

Используемые SSL DLL(openssl-0.9.8k-i386-win32):
Вложения
Тип файла: rar SSL DLL Install.rar (630.2 Кб, 58 просмотров)
Alter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
idHTTP Edward Работа с сетью в Delphi 14 04.09.2009 00:33
IDHTTP Edward Компоненты Delphi 1 17.08.2009 20:20
idHTTP DeDoK Общие вопросы Delphi 5 05.06.2008 22:45
idHTTP при нерабочем сайте возвращает ошибку Yuran Работа с сетью в Delphi 5 26.05.2008 14:37
Login Password IdHttp на сайте http://go.azona.com.ru/ tigr1991 Работа с сетью в Delphi 5 28.01.2008 17:48