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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.01.2013, 21:28   #1
AndreiST
 
Аватар для AndreiST
 
Регистрация: 07.04.2012
Сообщений: 5
Сообщение Авторизация на Delphi7+Indy+HTTPS

Привет. Набросал код для авторизации на одном сайте. Но она не проходит. Использую Delphi7, Indy, нужные библиотеки ssl в папке с программой. Пробовал HttpAnalyzer-ом, передаются те же данные за исключением некоторых пустых. Выкладываю саму программу с кодом. Помогите пожалуйста кто может. Уже не первый день не получается.

Ошибок никаких не выдает, просто не авторизуется, видимо каких-то параметров не хватает. Не знаю, что ещё можно передать ему.

Цитата:
procedure TFormServer.Button4Click(Sender: TObject);
var
PostData : TStringList;
begin
PostData := TStringList.Create;
try
PostData := TStringList.Create;
PostData.Add('loginID=VRTC264796');
PostData.Add('password=marketing707 ');
//PostData.Add('dummy=marketing707');
//PostData.Add('l=RU');
//PostData.Add('skin=PORTAL');
StrPage:= IdHTTP1.Post('https://lo01.betonmarkets.com/d/c_Start.cgi?l=RU&skin=PORTAL',PostD ata);
Memo1.Lines.Add(Utf8ToAnsi(StrPage) );
if Pos('balance',StrPage)>0 then
label4.Caption:='Авторизовались'
else
label4.Caption:='Авторизация не удалась';
finally
PostData.free;
end;
end;
Изображения
Тип файла: jpg 1.jpg (53.1 Кб, 154 просмотров)
Вложения
Тип файла: rar Delphi 7 - Indy оттуда же.rar (1.05 Мб, 22 просмотров)

Последний раз редактировалось AndreiST; 27.01.2013 в 21:44.
AndreiST вне форума Ответить с цитированием
Старый 27.01.2013, 22:42   #2
Pearl777
Форумчанин
 
Регистрация: 04.01.2013
Сообщений: 171
По умолчанию

Код:
//PostData.Add('dummy=marketing707');
Вместо marketing707 напиши "Пароль".
Pearl777 вне форума Ответить с цитированием
Старый 27.01.2013, 22:53   #3
AndreiST
 
Аватар для AndreiST
 
Регистрация: 07.04.2012
Сообщений: 5
По умолчанию

нет так тоже не идет, уже пробовал
AndreiST вне форума Ответить с цитированием
Старый 28.01.2013, 11:45   #4
Lardes
Форумчанин
 
Аватар для Lardes
 
Регистрация: 19.08.2011
Сообщений: 329
По умолчанию

Цитата:
Сообщение от AndreiST Посмотреть сообщение
Пробовал HttpAnalyzer-ом, передаются те же данные за исключением некоторых пустых.
Плохо "Пробовал HttpAnalyzer-ом". Никаких пустых параметров, друг, не передаются.

Цитата:
Сообщение от AndreiST Посмотреть сообщение
Ошибок никаких не выдает, просто не авторизуется, видимо каких-то параметров не хватает. Не знаю, что ещё можно передать ему.
Разумеется никаких ошибок не будет. Тут не то что "каких-то параметров не хватает", а ты не туда отправляешь POST-запрос

Цитата:
Сообщение от AndreiST Посмотреть сообщение
Не знаю, что ещё можно передать ему.
Куки обязательно передай!

Цитата:
Сообщение от Pearl777 Посмотреть сообщение
Вместо marketing707 напиши "Пароль".
+1

От себя добавлю, что параметр dummy отправляется в формате UTF, да к тому же закодированным.

Для тебя, AndreiST, получай куки, делая GET-запрос на страничку, и потом передавай POST на https://bluebird4.betonmarkets.com/d/do_login.cgi. Вот что отправляет мой браузер:

Код:
POST /d/do_login.cgi HTTP/1.1
Host: bluebird4.betonmarkets.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: https://lo01.betonmarkets.com/d/c_St...RU&skin=PORTAL
Cookie: homepage=Home; SKIUFYNFUIYDFTDUIHF=PORTAL; settings=%20LANG%3DRU; SOURCE=datetime%3D1359357597%3Bsource%3D; CONVERSION_PATH=h; __cfduid=df8d7aa837a496707bdf1d0702fd8bc931359357596; __utma=81866633.1194833418.1359357601.1359357601.1359357601.1; __utmb=81866633.1.10.1359357601; __utmc=81866633; __utmz=81866633.1359357601.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 100

loginID=VRTC264796&password=marketing707&dummy=%D0%9F%D0%B0%D1%80%D0%BE%D0%BB%D1%8C&l=RU&skin=PORTAL

Последний раз редактировалось Lardes; 28.01.2013 в 11:48.
Lardes вне форума Ответить с цитированием
Старый 28.01.2013, 12:39   #5
AndreiST
 
Аватар для AndreiST
 
Регистрация: 07.04.2012
Сообщений: 5
Лампочка

Спасибо, Lardes, вечером сделаю по твоему совету, потом отпишусь
AndreiST вне форума Ответить с цитированием
Старый 28.01.2013, 14:11   #6
Lardes
Форумчанин
 
Аватар для Lardes
 
Регистрация: 19.08.2011
Сообщений: 329
По умолчанию

Цитата:
Сообщение от AndreiST Посмотреть сообщение
Спасибо, Lardes, вечером сделаю по твоему совету, потом отпишусь
Пожалуйста))

Заметил, что при успешной авторизации у них происходит редирект на https://vr-deal01.betonmarkets.com/d...ocus=myaccount
Если собираешься парсить, куки для этого обязательны.

Заранее хочу сказать, что после этого у тебя вдруг могут возникнуть проблемы: такая особенность инди, то версия не та, то библиотеки левые. Совет: переходи на синапс. Лично для тебя - реализация на синапсе.

P.S. Весы рядом =)
Вложения
Тип файла: rar betonmarkets.rar (652.0 Кб, 37 просмотров)
Lardes вне форума Ответить с цитированием
Старый 28.01.2013, 20:32   #7
AndreiST
 
Аватар для AndreiST
 
Регистрация: 07.04.2012
Сообщений: 5
По умолчанию

Пока ничего хорошего с получением куки через get-запросы не сделал. Потом как-нибудь попробую: осталось каких-то несколько шагов.
Lardes, за реализацию проги на синапсе отдельное огромное спасибо. Пойду, в коде пока поразбираюсь=)

У меня что-то страница таким образом не авторизованная получается
Цитата:
procedure TForm2.Button2Click(Sender: TObject);
begin
WebBrowser1.Navigate('https://vr-deal01.betonmarkets.com/d/c_Start.cgi?l=RU&skin=PORTAL&focus= myaccount');
end;

Последний раз редактировалось AndreiST; 28.01.2013 в 21:35.
AndreiST вне форума Ответить с цитированием
Старый 29.01.2013, 09:38   #8
Lardes
Форумчанин
 
Аватар для Lardes
 
Регистрация: 19.08.2011
Сообщений: 329
По умолчанию

Цитата:
Сообщение от AndreiST Посмотреть сообщение
У меня что-то страница таким образом не авторизованная получается
Разумеется ты её получишь не авторизованной по причине того, что ты открываешь её без всяких куков) Вариант - либо добавлять куки в IE, либо загружать в WebBrowser куки твоим вариантом:

Код:
  //Создаём документ с пустым содержанием.
  WebBrowser1.Navigate('about:blank');
  //Загружаем в документ нужный HTML код.
  WebBrowser1.OleObject.Document.Write(Utf8Decode(StrPage));
Вложения
Тип файла: rar betonmarkets.com (+WebBrowser).rar (679.3 Кб, 31 просмотров)
Lardes вне форума Ответить с цитированием
Старый 30.01.2013, 10:46   #9
AndreiST
 
Аватар для AndreiST
 
Регистрация: 07.04.2012
Сообщений: 5
Радость

Lardes, спасибо за советы и помощь в написании кода.
Правда, теперь, через несколько дней, когда открываю страницу в TBrowser,
появляется капча=), ну это не мешает.
AndreiST вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
INDY + HTTPS + SSL Maxwellion Работа с сетью в Delphi 5 16.01.2014 16:45
HTTPS, Indy 10, Delphi 7 KoBaL Работа с сетью в Delphi 8 14.11.2012 15:08
авторизация на httpS ProX_Alex C# (си шарп) 3 14.04.2012 15:37
https & indy netronn Работа с сетью в Delphi 3 30.03.2011 12:34
HTTPS indy! sergeyrulit Общие вопросы Delphi 0 31.08.2010 16:15