Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2010.11.21;
Скачать: [xml.tar.bz2];

Вниз

Разобрать Chunked encoded   Найти похожие ветки 

 
Danger ©   (2008-01-09 19:25) [0]

Скачиваю по HTTP web-страницу с http-сервера в chunked transfer-encoding, кладу все скачанное в TStream. Есть у кого-нибудь готовый алгоритм разбора chunked encoded, чтоб получить на выходе обычную страницу в  html-представлении ?
Заранее спасибо.


 
MetalFan ©   (2008-01-09 21:03) [1]

может подсмотреть в Indy?


 
serega123   (2008-10-03 05:51) [2]

Та же проблемма!!!
перерыл весь интернет, решения не нашел.

Мои заголовки (это я смотрю в браузере, с помощью ieHTTPHeaders):

GET /pda/ HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*
Accept-Language: ru
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; InfoPath.1)
Host: mail.yandex.ru
Connection: Keep-Alive

Заголовки ответа сервера (тоже посмотрел в браузере):

HTTP/1.1 200 OK
Cache-Control: max-age=0, must-revalidate, proxy-revalidate, no-cache, no-store, private
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/html; charset=windows-1251
Date: Thu, 02 Oct 2008 23:08:19 GMT
Expires: Thu, 02 Oct 2008 23:13:19 GMT
Last-Modified: Thu, 02 Oct 2008 23:08:19 GMT
Pragma: no-cache
Server: BAIDA/2.0.1
Transfer-Encoding: Chunked


Мой код:

procedure TForm1.Button1Click(Sender: TObject);
var
 InStream, OutStream: TmemoryStream;
begin
 IdHTTP1.IOHandler:=IdIOHandlerStack1;
 IdHTTP1.CookieManager:=IdCookieManager1;
 IdHTTP1.Compressor:=IdCompressorZLibEx1;

 IdHTTP1.AllowCookies:=true;
 IdHTTP1.HandleRedirects:=true;

 IdHTTP1.Request.Accept:="image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*";
 IdHTTP1.Request.AcceptLanguage:="ru";
 IdHTTP1.Request.AcceptEncoding:="gzip, deflate";
 IdHTTP1.Request.UserAgent:="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; InfoPath.1)";
 IdHTTP1.Request.Host:="mail.yandex.ru";
 IdHTTP1.Request.Connection:="Keep-Alive";

 InStream:=TMemoryStream.Create;
 OutStream:=TMemoryStream.Create;

 IdHTTP1.Get("http://mail.yandex.ru/pda/",InStream);
 IdCompressorZLibEx1.DecompressGZipStream(InStream,OutStream);
 Memo1.Lines.LoadFromStream(OutStream);

 InStream.Free;
 OutStream.Free;
end;

Delphi 2006, Indy 10

код наглухо виснет на строчке IdHTTP1.Get...

Помогите, люди добрые!!!


 
Eraser ©   (2008-10-07 00:43) [3]

procedure TForm1.Button2Click(Sender: TObject);
var
InStream, OutStream: TmemoryStream;
begin
IdHTTP1.IOHandler:=IdIOHandlerStack1;
IdHTTP1.CookieManager:=IdCookieManager1;
IdHTTP1.Compressor:=IdCompressorZLib1;

IdHTTP1.AllowCookies:=true;
IdHTTP1.HandleRedirects:=true;

IdHTTP1.Request.Accept:="image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*";
IdHTTP1.Request.AcceptLanguage:="ru";
IdHTTP1.Request.AcceptEncoding:="gzip, deflate";
IdHTTP1.Request.UserAgent:="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; InfoPath.1)";
IdHTTP1.Request.Host:="mail.yandex.ru";
IdHTTP1.Request.Connection:="Keep-Alive";

InStream:=TMemoryStream.Create;
OutStream:=TMemoryStream.Create;

IdHTTP1.Get("http://mail.yandex.ru/pda/",InStream);
InStream.Position := 0;
//IdCompressorZLibEx1.DecompressGZipStream(InStream,OutStream);
Memo1.Lines.LoadFromStream(InStream);

InStream.Free;
OutStream.Free;
end;

все прекрасно работает.
D2009, Indy 10.


 
cerber   (2008-12-16 23:03) [4]

2> Eraser ©   (07.10.08 00:43) [3]
здается мне OutStream вообще не нужен)



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2010.11.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.003 c
6-1199895934
Danger
2008-01-09 19:25
2010.11.21
Разобрать Chunked encoded


2-1283106912
novichek
2010-08-29 22:35
2010.11.21
автосоздание полей в дбгриде


15-1281529846
И. Павел
2010-08-11 16:30
2010.11.21
Композиции типа Битлз


6-1228895639
Calligraff
2008-12-10 10:53
2010.11.21
Передача типов через TClientsData


15-1281383797
М. Береговой
2010-08-09 23:56
2010.11.21
Будет землетряс или не будет? :-)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский