HTTP Contend encoding gzip => decomprimieren
Volker
- perl
0 Andreas Korthaus0 Volker0 Sönke Tesch
hallo,
eine webseite sendet ihren content im gzip format, auch ein nicht akzeptieren von gzip via umgebauten header ändert nichts daran. wie bekomme ich den content wieder lesbar? Decompress gibt undef zurück.
my $ua = new LWP::UserAgent;
my $request = new HTTP::Request('GET', $url);
$response = $ua->request($request);
print decompress($response->content());
hat jemand eine idee?
gruss volker
Hi!
my $ua = new LWP::UserAgent;
my $request = new HTTP::Request('GET', $url);
$response = $ua->request($request);
print decompress($response->content());hat jemand eine idee?
Soweit ich mich erinnere wird bei "Contend-Encoding: gzip" in die ersten 10 Byte irgendwelche Zusatzinformationen geschrieben, das heißt Du musst die ersten 10 Zeichen aus dem gz-String entfernen, und erst dann (den Rest) dekomprimieren. Ich kenne mich mit den PERL-Funktionen/Modulen nicht aus, in PHP verwendet man glaube ich nicht decompress sondern gzinflate, vielleicht ist das in PERL ja auch was anderes.
Grüße
Andreas
hi!
also ich habe mal probier zwischen 0 und 50 byte vorher abzuschneiden, leider kein erfolg. uncompress is in dem modul übrigens eine hochfunktion von inflate, wo man keine objekte mehr anlegen muss und so. habe auch inflate ausprobiert, wieder mit vorherigem abschneiden, klappt auch nicht...
irgendjemand eine idee?
gruss volker
also ich habe mal probier zwischen 0 und 50 byte vorher abzuschneiden, leider kein erfolg. uncompress is in dem modul übrigens eine hochfunktion von inflate, wo man keine objekte mehr anlegen muss und so. habe auch inflate ausprobiert, wieder mit vorherigem abschneiden, klappt auch nicht...
Wenn Dein Perl kein eingebautes gzip bietet, schick den Kram an gzip. Das Programm gibt's für so ziemlich jede Plattform.
gzip: http://www.faqs.org/rfcs/rfc1952.html
deflate: http://www.faqs.org/rfcs/rfc1951.html
zlib: http://www.faqs.org/rfcs/rfc1950.html
Gruß,
soenk.e
hallo,
gunzip bricht ab mit der meldung "unknown suffix -- ignored".
vielleicht fehlt der suffix (die 10 byte) ja auch. kann man die davorschreiben, wer weiss wie?
gruss volker
gunzip bricht ab mit der meldung "unknown suffix -- ignored".
vielleicht fehlt der suffix (die 10 byte) ja auch.
Ein Suffix hängt hinten dran. Das, was Du (wahrscheinlich) mit den "10 Bytes" meinst, hängt vorne vor, ist also - wenn überhaupt - ein Präfix.
gunzip beschwert sich hier lediglich darüber, daß die ihm angebotene Datei nicht mit dem Anhängsel (Suffix) .gz endet. Benenne die Datei um.
Gruß,
soenk.e
Hi Sönke,
Wenn Dein Perl kein eingebautes gzip bietet,
http://search.cpan.org/dist/Compress-Zlib/
(u. a. in http://www.schroepl.net/projekte/gzip_cnc/install.htm#program verwendet)
Viele Grüße
Michael