Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.03.2011, 12:29
TheHavoc TheHavoc вне форума
Прохожий
 
Регистрация: 22.03.2011
Сообщения: 7
Репутация: 10
Вопрос Socket Error #0

Здравия всем.
Возник вопрос:
При написании следующего кода:
Код:
 
//Get Login Page
    HTTP.Get('https://taba.ru/?r=index/login');
//Show RawHeaders
    Memo1.Lines.Add(HTTP.Response.RawHeaders.Text);
//Show Cookies
    for i := 0 to CM.CookieCollection.Count -1 do
         Memo2.Lines.Add(CM.CookieCollection.Items[i].CookieText);
//Заполнение данных отправки(логин-формы)
   Data:=TStringList.Create;
Data.Add('LoginForm[email]=логин');
Data.Add('LoginForm[password]=пасс');
//Все правильно, и логин и пасс
//Вот тут выдается сокет эррор с номером 0:
   Memo1.Text:=HTTP.Post('https://taba.ru/?r=index/login',Data);

Кто может подсказать, почему?
И что значит сокет эррор #0 ?
пол-яндекса перегуглил, не нашел.

Последний раз редактировалось TheHavoc, 22.03.2011 в 12:35.
Ответить с цитированием
  #2  
Старый 23.03.2011, 11:08
TheHavoc TheHavoc вне форума
Прохожий
 
Регистрация: 22.03.2011
Сообщения: 7
Репутация: 10
По умолчанию

Кое в чем разобрался, модифицировал код, вот что получается:
Код:
begin
  EMail := 'thehavo@yandex.ru';
  Password := '1234';
  with HTTP do
  begin
    AllowCookies := True;
    HandleRedirects := True;
    CookieManager := CM;
    IOHandler := SSL;
    HTTPOptions := [];
    with Request do
    begin
      Host :=	'taba.ru';
      UserAgent :=	'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.17) Gecko/20110121 Firefox/3.5.17';
      Accept :=	'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
      AcceptLanguage :=	'ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3';
      AcceptEncoding :=	'gzip,deflate';
      AcceptCharset :=	'windows-1251,utf-8;q=0.7,*;q=0.7';
      Connection :=	'keep-alive';
      ContentType := 'application/x-www-form-urlencoded';
    end;
  end;
  Data := TStringList.Create;
  Data.Add('auth_type=1');
  Data.Add('LoginForm%5Bemail%5D=' + EMail);
  Data.Add('LoginForm%5Bpassword%5D=' + Password);
  Data.Add('LoginForm%5Bopenid%5D=');
  Data.Add('sbmt=%D0%92%D0%BE%D0%B9%D1%82%D0%B8');
  try
    HTTP.Post('https://taba.ru/?r=index/login', Data);
  except
    Memo2.Lines.Add(IntToStr(HTTP.ResponseCode));
// выдает 302, но куки получает 
  end;
  Memo1.Lines.Add(HTTP.Response.ResponseText);
  for i := 0 to CM.CookieCollection.Count - 1 do
    Memo2.Lines.Add(CM.CookieCollection.Items[i].CookieText);
end;
//Но страницы потом запросить нельзя
HTTP.GET('http://taba.ru/?r=dashboard');
//Выдает сокет эррор, и ответ сервера - код 302.
//то-же происходит и при запросе https://taba.ru/?r=dashboard и вообще любой страницы
// Мозг уже сломал, нужно получить страницу профиля( /?r=dashboard);
//А не получается, постоянно выдает редирект, и не дает ХТМЛ- код страницы.
// как справиться?
Ответить с цитированием
  #3  
Старый 23.03.2011, 11:42
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

сделай у TIdHTTP в инспекторе HandleRedirects:=True;
ну и этого, имхо, достаточно будет для Post:
Код:
    with Request do
    begin
      ContentType := 'application/x-www-form-urlencoded';
    end;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #4  
Старый 23.03.2011, 12:47
TheHavoc TheHavoc вне форума
Прохожий
 
Регистрация: 22.03.2011
Сообщения: 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock
сделай у TIdHTTP в инспекторе HandleRedirects:=True;
ну и этого, имхо, достаточно будет для Post:
Код:
    with Request do
    begin
      ContentType := 'application/x-www-form-urlencoded';
    end;

Cмотрите код выше(пост №2) там я прописал
Цитата:
with HTTP do
begin
AllowCookies := True;
HandleRedirects := True;
...
...
но ошибка возникает.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 05:44.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter