La manipulation HTTP ContentEncoding “dégonfler”
Ce InputStream type doit être utilisé pour gérer les URLConnection les ruisseaux qui ont HTTP Encodage de Contenu ensemble de dégonfler?
Pour un Encodage de Contenu de gzip ou zip-je utiliser un GZIPInputStream, pas de problème.
Pour un Encodage de Contenu de "dégonfler" j'ai essayé d'utiliser InflaterInputStream et DeflaterInputStream mais je reçois
java.util.zip.ZipException: inconnu
méthode de compression
à java.util.zip.InflaterInputStream.lire(InflaterInputStream.java:147)
Ma compréhension est que "dégonfler" l'encodage se réfère à Zlib de compression, et selon la docs cela devrait être géré par InflaterInputStream.
Vous devez vous connecter pour publier un commentaire.
Dans HTTP/1.1,
Content-encoding: deflate
fait en réalité référence à l'algorithme de compression DEFLATE, tel que défini par RFC 1951, enveloppé dans la zlib format de données, tel que défini par RFC 1950.Toutefois, certains fournisseurs de mettre en œuvre l'algorithme DEFLATE tel que défini RFC 1951, en ignorant complètement la RFC 1950 (pas de zlib, les en-têtes).
D'autres ont été touchés par le même problème:
Pour contourner ce problème, essayez d'instancier la
InflaterInputStream
passage d'unInflater
qui a été créé avec lenowrap
paramètretrue
:Malheureusement, à l'aide de la InflaterInputStream avec un Inflater objet ne produisent pas toujours la bonne décompression. J'ai eu à détecter les en-têtes et de dire la Inflater où le décalage de la charge utile a été.
http://thushw.blogspot.com/2014/05/decoding-html-pages-with-content.html