Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

IdHttp.Get Не могу получить страничку. [D7, XP]


HF-Trade ©   (2010-09-08 16:42:00) 

Здравствуйте.

На форме -
IdHttp
IdAntifrezee
IdCookieManager

Поля Request у IdHttp1 заполнены так -

UserAgent := 'Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.6.30 Version/10.61';
Host := 'l2top.ru';
Accept := 'text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1';
AcceptLanguage := 'ru-RU,ru;q=0.9,en;q=0.8';
AcceptCharSet := 'iso-8859-1, utf-8, utf-16, *;q=0.1';
AcceptEncoding := 'deflate, gzip, x-gzip, identity, *;q=0';
Connection := 'Keep-Alive, TE';

Свойства IdHttp1 -

RedirectMaximum := 3;
HandleRedirects := True;
AllowCookies := True;
...

Пробую получить страничку

tmpStr := idhttp1.Get(' http://l2top.ru/vote/3577/');

Ну собсно не получается...
Подскажите чтонить.


HF-Trade   (2010-09-09 01:55:00) [1]

Всем спасибо.
Павел Вы были правы) Переустановил Indy все заработало...


Медвежонок Пятачок   (2010-09-08 19:20:00) [2]

про кодировку тебе рассказывает сервер в заголовке ответа.
в акцеп энкодинг не надо говорить про гзип, если не умеешь его расжимать.
за тебя никто это делать не будет, idhttp - это просто транспорт и ничего больше.


HF-Trade   (2010-09-08 18:08:00) [3]

Павел, я вчера скачал последнюю версию Indy, и у меня так и стоит -
IdHttp1.handleRedirects := True;


> Медвежонок Пятачок ©   (08.09.10 17:50) [4]

А как узнать кодировку? И что тогда лучше прописать в AcceptEncoding?


И. Павел   (2010-09-08 17:54:00) [4]

http://programmersforum.ru/showthread.php?t=45406


HF-Trade   (2010-09-08 17:51:00) [5]

После того как севрекр ответит HTTP/1.1 200 OK
Идет обмен пакетами, и в итоге в tmpStr попадает, вот эта чуш то что кинул выше.
Посмотрел снифером как там у Оперы - у нее после ответа пакетов приходит побольше раза в 2....


Медвежонок Пятачок   (2010-09-08 17:50:00) [6]

но вместо странички приходит какая то чуш...

AcceptEncoding := 'deflate, gzip, x-gzip, identity, *;q=0';

а зачем ты серверу говоришь, что умеешь распакоывать гзип?
ты же его все равно не распаковываешь.

кроме того, с чего ты решил, что сервер тебе ответит контентом в вин-1251?


HF-Trade   (2010-09-08 17:46:00) [7]

1. Эти настройки взял из Оперы, то что снифер увидел...

2. Что то вроде этого -
\x1F‹\x8      \x3Э=ЫrЫF–ПЦWtаd Zв
$uЈH—З—ДSv’ЌќMmUЄ\ \x1R€IЂ\x3Ђ


И. Павел   (2010-09-08 17:39:00) [8]


> Accept := 'text/html, application/xml;q=0.9, application/xhtml+xml,
>  image/png, image/jpeg, image/gif, image/x-xbitmap, */*;
> q=0.1';
> AcceptLanguage := 'ru-RU,ru;q=0.9,en;q=0.8';
> AcceptCharSet := 'iso-8859-1, utf-8, utf-16, *;q=0.1';
> AcceptEncoding := 'deflate, gzip, x-gzip, identity, *;q=0';
>
> Connection := 'Keep-Alive, TE';

Эти настройки необходимы, или вы просто взяли за основу какой-то пример из сети?


> но вместо странички приходит какая то чуш.

Первые несколько строчек "чуши" в студию!


HF-Trade   (2010-09-08 17:25:00) [9]

Добавил

tmpStr := '';
try
 tmpStr := IdHTTP1.Get(' http://l2top.ru/vote/3577/');
except on e : EIDHttpProtocolException do
 Begin
  IF e.ErrorCode = 302 Then
   Begin
    Try
     Memo1.lines.add(IdHTTP1.Get(IdHTTP1.Response.Location));
    except on e: Exception do
     ShowMessage('Ошибка при получении нового адреса.'+e.Message);
    end;
   end
  Else
   ShowMessage('Код ошибки : ' + e.Message);
 end;
on e: Exception do
 ShowMessage('Ошибка: ' + e.Message);

Ошибку не выдает, но вместо странички приходит какая то чуш...


Наверх

Титульная страница Поиск, карта сайта Написать письмо