AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy 9 TIdHTTP und gzip-Encoding
Thema durchsuchen
Ansicht
Themen-Optionen

Indy 9 TIdHTTP und gzip-Encoding

Ein Thema von Codehunter · begonnen am 18. Mär 2009 · letzter Beitrag vom 29. Mär 2009
Antwort Antwort
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#1

Indy 9 TIdHTTP und gzip-Encoding

  Alt 18. Mär 2009, 10:20
Ich verwende Indy 9 (auf die seit Jahren nicht aus dem Betastadium herauskommende Indy 10 muss ich leider verzichten) und möchte gerne mit TIdHTTP Streams entgegen nehmen, die PHP-serverseitig mit ob_start("ob_gzhandler") komprimiert werden. Bei Indy 9 TIdHTTP gibt es noch kein Compressor-Property wie bei Indy 10.

Ich such mich jetzt schon dumm und fusselig aber finde nichts, das einen gzip-komprimierten MemoryStream entpacken könnte. Die ganzen ZLib-Implementationen die ich bis jetzt durch habe können alle nur ZIP, BZip und BZip2.

Idealerweise wäre mir eine native Routine am liebsten, die keine externen DLLs benötigt. Zumindest keine, die nicht bei jedem Windows vorhanden ist (will auf einen Installer verzichten, EXE-only)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Indy 9 TIdHTTP und gzip-Encoding

  Alt 18. Mär 2009, 10:37
http://sourceforge.net/projects/tpabbrevia/ kann Streams komprimieren.

Ansonsten hat LMD in seinen Packages aufgrund der PNG-Unterstützung eine ZLib-Komponente eingebaut (TLMDCompressionStream, TLMDDecompressionStream). Ansonsten sollte es genügend Units geben welche einen Wrapper um die freien ZLIB-Objektfiles bietet.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Indy 9 TIdHTTP und gzip-Encoding

  Alt 18. Mär 2009, 11:06
Zitat von Bernhard Geyer:
Ich will ja DEkomprimieren Zweitens finde ich in dem Abbrevia auch nichts das nach GZip aussieht.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Indy 9 TIdHTTP und gzip-Encoding

  Alt 18. Mär 2009, 11:24
Zitat von Codehunter:
Zitat von Bernhard Geyer:
Ich will ja DEkomprimieren Zweitens finde ich in dem Abbrevia auch nichts das nach GZip aussieht.
Kann auch dekomprimieren:

Delphi-Quellcode:
    GzHelp := TAbZLStreamHelper.Create(StreamIn);
    try
      GzHelp.ReadHeader;
      GzHelp.ExtractItemData(StreamOut);
      GzHelp.ReadTail;
    finally
      GzHelp.Free;
    end;
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Indy 9 TIdHTTP und gzip-Encoding

  Alt 18. Mär 2009, 11:39
Ok bekanntlich führen ja viele Wege nach Rom. Abbrevia scheint mit dem gzip unseres Webservers jedenfalls nicht umgehen zu können, es kommt nur Datenmüll am Ende heraus. Ich habe dann einfach am Server von gzip auf deflate (bzip) umgestellt, da klappte es auf Anhieb mit der ZLib.
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#6

Re: Indy 9 TIdHTTP und gzip-Encoding

  Alt 18. Mär 2009, 12:36
Hallo,

Zitat von Codehunter:
auf die seit Jahren nicht aus dem Betastadium herauskommende Indy 10 muss ich leider verzichten
Bitte zeige mir einen Link, der Indy 10 offiziell als Beta kennzeichnet Dann lieber Indy 9, Delphi 5 und vielleicht noch Win98 als OS, richtig?

Indy ist im permanenten Zustand der Weiterentwicklung, das macht aber noch lange keine Beta daraus. Sowas betrifft auch die JEDIs und auch alle möglichen kommerziellen Libraries. Dort gibt es manchmal im Tagesabstand Updates/Fixes...

Zitat von Codehunter:
Ich such mich jetzt schon dumm und fusselig aber finde nichts, das einen gzip-komprimierten MemoryStream entpacken könnte. Die ganzen ZLib-Implementationen die ich bis jetzt durch habe können alle nur ZIP, BZip und BZip2.
ZIP ist schonmal ganz verkehrt, daß kann ZLib bestimmt nicht da hier die Struktur-Informationen fehlen. gz und z Kompression sind auf jeden Fall in allen aktuellen zLib Implementationen dabei und z.B. in zLibEx enthalten (aber auch in D2006, D2007, D2009). Ohne externe Abhängigkeiten zur Laufzeit.

Oder mal das probieren: Decompress .gz files with zlib unit. Eine Möglichkeit ist, die WindowBits anzupassen...

Infos zu zLib gibt es auf der offiziellen Homepage.

Gruß Assertor
Frederik
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Indy 9 TIdHTTP und gzip-Encoding

  Alt 18. Mär 2009, 13:25
Zitat von Assertor:
Bitte zeige mir einen Link, der Indy 10 offiziell als Beta kennzeichnet
http://indyproject.org/Sockets/wizar...Wizard.DE.aspx

Bei Version 8 und 9 "Stable", bei 10 "Work in progress" - Heißt für mich, das ist noch nicht mal in einem Beta-Stadium angekommen...

Zitat von Assertor:
Dann lieber Indy 9, Delphi 5 und vielleicht noch Win98 als OS, richtig?
Jepp, außer Win98 Ich arbeite tatsächlich noch mit D5 Pro.

Die Links werd ich mir in ner ruhigen Minute mal zu Gemüte führen.
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#8

Re: Indy 9 TIdHTTP und gzip-Encoding

  Alt 18. Mär 2009, 14:01
Zitat von Codehunter:
bei 10 "Work in progress" - Heißt für mich, das ist noch nicht mal in einem Beta-Stadium angekommen...
Die Webseiteninhalte sind hoffnungslos veraltet. Der Text stammt 1:1 noch aus D2005 Zeiten. Wir haben gerade mal ein neues Layout bekommen und alle Texte von der alten Webseite übernommen. Gleiches gilt für die Indy Hilfe in D200x. Das ist nunmal so bei einem Freiwilligen-Projekt...

Aber ich kann aus 1. Hand sagen: Indy 10 wird schon lange produktiv eingesetzt - bei D2009 hast Du dann auch keine andere Möglichkeit mehr. Es gibt sehr viel bekannte Software die darauf baut. Ich selbst nutze es auch im Produktiveinsatz. Das ist für mich, wie eine Diskussion, ob man noch Kassette nehmen sollte oder besser CD/DVD...

Meinetwegen können ja alle einige dabei bleiben, vergleichbar der BDE bei "Datenbanken". Aber wenn es geht, bitte solche Software nicht auf Kunden loslassen

Zitat von Codehunter:
Die Links werd ich mir in ner ruhigen Minute mal zu Gemüte führen.
Sind recht interessant. Vor allen Dingen ist zLib eine Standardlibrary, da ist es immer gut diese zu beherrschen.

Gruß Assertor
Frederik
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#9

Re: Indy 9 TIdHTTP und gzip-Encoding

  Alt 29. Mär 2009, 22:33
Hi,

ich verlink mal zu einem anderen Thread mit entsprechender Lösung:
http://www.delphipraxis.net/internal...020244#1020244

Gruß Assertor
Frederik
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz