|
#1
|
|||
|
|||
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
|
|||
|
|||
Кое в чем разобрался, модифицировал код, вот что получается:
Код:
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
|
||||
|
||||
сделай у TIdHTTP в инспекторе HandleRedirects:=True;
ну и этого, имхо, достаточно будет для Post: Код:
with Request do begin ContentType := 'application/x-www-form-urlencoded'; end; Пишу программы за еду. __________________ |
#4
|
|||
|
|||
Цитата:
Cмотрите код выше(пост №2) там я прописал Цитата:
|