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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2014, 15:40   #1
grizly1
 
Регистрация: 08.05.2014
Сообщений: 3
Восклицание Проблема с авторизацией через IdHTTP

Сабж!

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
PostData:TStringList;
html:WideString;
begin
PostData:=TStringList.Create;
PostData.Clear;
PostData.Add('login='+edit1.Text);
PostData.Add('pass='+edit2.Text);
IdHTTP1.Request.Referer:='http://wap.betsbc.com/';
html:=IdHTTP1.Post('http://wap.betsbc.com/login.php',PostData);
PostData.Free;
IdHTTP1.Request.Referer:='';
if AnsiPos('4956566', utf8toansi(html))=0 then ShowMessage('Ошибка входа!')
else ShowMessage('Успешная авторизация!');
end;
Само собой к IdHTTP привязал CookieManager.
Просто почему-то не логинится...

В чём может быть проблема? Хелп!

Последний раз редактировалось grizly1; 09.05.2014 в 20:22.
grizly1 вне форума Ответить с цитированием
Старый 10.05.2014, 16:56   #2
hooko
Пользователь
 
Аватар для hooko
 
Регистрация: 04.05.2012
Сообщений: 13
По умолчанию

Пароль скорее всего должен передаваться в захешированом виде. Md5 например. Смотрел передаваемые данные в снифере?
Самое потрясающее достижение программного обеспечения состоит в том, что оно способно уничтожить стабильность и любые достижения аппаратного обеспечения.
(Henry Petroski)
hooko вне форума Ответить с цитированием
Старый 10.05.2014, 18:28   #3
grizly1
 
Регистрация: 08.05.2014
Сообщений: 3
По умолчанию

Само собой всё посмотрел...ничего не шифруется там.
Но если не сложно на всякий случай прошу проверить...
grizly1 вне форума Ответить с цитированием
Старый 11.05.2014, 00:11   #4
Smagulov85
Форумчанин
 
Аватар для Smagulov85
 
Регистрация: 22.11.2009
Сообщений: 142
По умолчанию

Все Request Надо заполнять, как в браузере из-за этого тебя и не пускает.

Потом! Когда делается POST сразу идет редирект на GET, для этого есть функция OnRedirect

Вроде все ок у меня. проверял по снифферу

Код:
unit main;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, IdCookieManager, IdBaseComponent,
  IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    HTTP: TIdHTTP;
    IdCookieManager1: TIdCookieManager;
    Memo1: TMemo;
    procedure FormCreate(Sender: TObject);
    procedure betsbcCook(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure HTTPRedirect(Sender: TObject; var dest: string;
      var NumRedirect: Integer; var Handled: Boolean; var VMethod: string);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Data : TStringList;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
betsbcCook(Sender);
end;

procedure TForm1.HTTPRedirect(Sender: TObject; var dest: string;
  var NumRedirect: Integer; var Handled: Boolean; var VMethod: string);
begin
VMethod:='GET'
end;

procedure TForm1.betsbcCook(Sender: TObject);
begin
  HTTP.Request.Host:='wap.betsbc.com';
  HTTP.Request.Connection:='keep-alive';
  HTTP.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8';
  HTTP.Request.UserAgent:='Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36';
  HTTP.Request.AcceptLanguage:='ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4';
  HTTP.GET('http://wap.betsbc.com/'); // глюченый IdHTTP не всегда с первого GET получает куки, из-за этого для страховки 2 get
  HTTP.GET('http://wap.betsbc.com/');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Data:=TStringList.Create;
  HTTP.Request.Host:='wap.betsbc.com';
  HTTP.Request.Connection:='keep-alive';
  HTTP.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8';
  HTTP.Request.UserAgent:='Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36';
  HTTP.Request.ContentType:='application/x-www-form-urlencoded';
  HTTP.Request.Referer:='http://wap.betsbc.com';
  HTTP.Request.AcceptLanguage:='ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4';
  Data.Add('login='+Edit1.Text);
  Data.Add('pass='+Edit2.Text);
  Memo1.Text:=HTTP.POST('http://wap.betsbc.com/login.php',Data);

end;


end.
Если помог: Нажми Весы и оставь отзыв!!!

Последний раз редактировалось Smagulov85; 11.05.2014 в 00:17.
Smagulov85 вне форума Ответить с цитированием
Старый 11.05.2014, 02:53   #5
grizly1
 
Регистрация: 08.05.2014
Сообщений: 3
По умолчанию

Smagulov85, спасибо за помощь! Возможно твоё решение помогло бы.

Вопрос решился простым обновлением всех Indy компонентов.
grizly1 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с авторизацией Mr_ViK PHP 2 23.04.2012 04:30
Проблема, с авторизацией. Tip.the.besT Работа с сетью в Delphi 6 23.08.2011 00:34
IdHTTP - проблема с Get запросом через некоторое кол-во скаченых мегабайт vebster35 Работа с сетью в Delphi 11 03.04.2011 15:45
Проблема с авторизацией через IdHttp ]Wowan[ Работа с сетью в Delphi 13 20.01.2011 02:42
Проблема с авторизацией Mathouse Работа с сетью в Delphi 2 31.08.2010 16:03