Форум: "Сети";
Текущий архив: 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