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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.08.2011, 03:17   #1
Tip.the.besT
------------------
Пользователь
 
Регистрация: 15.08.2011
Сообщений: 78
По умолчанию Проблема, с авторизацией.

Пытаюсь авторизироваться на mail.ru. Вот код:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdHTTP, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL,
  IdServerIOHandler, IdCookieManager;

type
  TForm1 = class(TForm)
    IdHTTP1: TIdHTTP;
    Button1: TButton;
    Memo1: TMemo;
    IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL;
    IdCookieManager1: TIdCookieManager;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
   http       : TidHTTP;
   cook       : TidCookieManager;
   SSL        : TIdSSLIOHandlerSocketOpenSSL;
   send_data  : TStringList;
   StrPage    : string;

begin

  try
    http                 := TIdHTTP.Create(Self);
    send_data            := TStringList.Create;
    cook                 := TidCookieManager.Create(http);
    SSL                  := TIdSSLIOHandlerSocketOpenSSL.Create(http);
    http.AllowCookies    := true;
    http.CookieManager   := cook;
    http.HandleRedirects := true;
    http.IOHandler       := SSL;
    SSL.SSLOptions.Method:= sslvTLSv1;
    Http.Request.Host:='auth.mail.ru';
    Http.Request.UserAgent:='Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10';
    Http.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
    Http.Request.AcceptLanguage:='ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3';
    Http.Request.AcceptCharSet:='windows-1251,utf-8;q=0.7,*;q=0.7';
    Http.Request.Referer:='http://www.mail.ru/';

    send_data.Add('Login=123');
    send_data.Add('Domain=mail.ru');
    send_data.Add('Password=321');

    StrPage:= http.Post('https://auth.mail.ru/cgi-bin/auth',send_data);
    memo1.Text:=strpage;
    if pos('logout',memo1.Text)>0 then
    begin
    memo1.Clear;
    memo1.Lines.Add('есть контакт!');
    end;

  finally
    send_data.Free;
    cook.Free;
    http.Free;
  end;
end;

end.
Вот ответ:
Код HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head><title>@MAIL.RU: авторизация</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script language="JavaScript"><!--
    window.location.replace("http://e.mail.ru/cgi-bin/msglist?back=1"); 
// --></script>
<meta http-equiv="refresh" content="0;url=http://e.mail.ru/cgi-bin/msglist?back=1">
</head>
<body></body>
</html>
Что я упустил, почему не могу авторизоваться? Авторизация нужна для последующего использования поиска по людям в моём мире. Если у кого то есть готовый пример, поделитесь, но от грамотного совета тоже не откажусь!
C YBA}|{EH|/|EM Tip.the.besT

Последний раз редактировалось Tip.the.besT; 21.08.2011 в 03:27.
Tip.the.besT вне форума Ответить с цитированием
Старый 21.08.2011, 03:19   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а кто вам сказал что вы не авторизировались-то?
со времен обучалки авторизации на маиле многое сменилось.
насколько я помню это адрес просмотра папок почты, значит все норм.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.08.2011, 03:26   #3
Tip.the.besT
------------------
Пользователь
 
Регистрация: 15.08.2011
Сообщений: 78
По умолчанию

Насколько я понимаю при добавлении строки:
Код:
 memo1.Text:= http.get('http://e.mail.ru/cgi-bin/msglist?back=1');
я должен зайти в акк. я получаю ответ, но заветного logout там нет.
Я уже и так пробовал.
C YBA}|{EH|/|EM Tip.the.besT
Tip.the.besT вне форума Ответить с цитированием
Старый 21.08.2011, 03:33   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
я получаю ответ, но заветного logout там нет.
советую загружать исходник в WB(именно исходник, не адрес!) или же сохраняя исходник страницы в html файл, открывать его в браузере.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.08.2011, 03:53   #5
Tip.the.besT
------------------
Пользователь
 
Регистрация: 15.08.2011
Сообщений: 78
По умолчанию

А зачем, я что-то не въехал? Я хочу запросами авторизироваться и поиск сделать.
C YBA}|{EH|/|EM Tip.the.besT
Tip.the.besT вне форума Ответить с цитированием
Старый 21.08.2011, 10:02   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вам так нравится копаться в слепую?
я же вам не говорю работать через IE, получаете данные как хотите, просто проверяйте их так(проверяя отлаживаем)
+неплохо бы снифером смотреть, что там с куками и тп.
(я в такие моменты часто ставлю событие на кукименаген OnNewCookie)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.08.2011, 00:34   #7
Once
Пользователь
 
Регистрация: 21.08.2011
Сообщений: 14
По умолчанию

Попробуй авторизацию не пост запросом а гет, она и попроще и вроде работает.. писал неделю чтоли назад, тоже нужно было ) переделал вот тебе для примера:
Код:
      login:= 'login';
      domain:= 'mail.ru';
      pass:= 'pass';
      parse:= MailCheckerForm.IdHTTP1.Get('http://www.mail.ru/cgi-bin/auth?Login='+login+'&Domain='+domain+'&Password='+pass);
      if Pos('logout',parse)<>0 then begin
        ShowMesag('OK');

Последний раз редактировалось Once; 23.08.2011 в 18:07.
Once вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с авторизацией Yazon2006 Работа с сетью в Delphi 2 02.07.2011 22:03
Проблема с авторизацией DKENT Работа с сетью в Delphi 0 14.10.2010 17:40
Проблема с авторизацией Mathouse Работа с сетью в Delphi 2 31.08.2010 16:03
Проблема с авторизацией на сайте Айдар Работа с сетью в Delphi 3 23.07.2010 23:16
проблема с авторизацией sergei2009 PHP 1 19.04.2010 17:47