Bir GZIPed HTTP Yanıtını GZIPInputStream
kullanarak açmaya çalışıyorum. java.util.zip.ZipException: invalid bit length repeat
Java'da GZIPed HTTP Yanıtını Aç
Benim HTTP İstek Başlığı: Ben akışı okumaya çalışırken Ancak hep aynı istisna var HTTP Yanıt başlığının sonunda
GET www.myurl.com HTTP/1.0\r\n
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; fr; rv:1.9.2) Gecko/20100115 Firefox/3.6\r\n
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n
Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3\r\n
Accept-Encoding: gzip,deflate\r\n
Accept-Charset: ISO-8859-1,UTF-8;q=0.7,*;q=0.7\r\n
Keep-Alive: 115\r\n
Connection: keep-alive\r\n
X-Requested-With: XMLHttpRequest\r\n
Cookie: Some Cookies\r\n\r\n
, ben gziped tepki ardından path=/Content-Encoding: gzip
olsun .
GÜNCELLEME:
Ben sıkıştırmayı 2 benzerleri kodları çalıştı aşağıdaki kodları olarak,GZIPInputStream gzip = new GZIPInputStream (new ByteArrayInputStream (tBytes));
StringBuffer szBuffer = new StringBuffer();
byte tByte [] = new byte [1024];
while (true)
{
int iLength = gzip.read (tByte, 0, 1024); // <-- Error comes here
if (iLength < 0)
break;
szBuffer.append (new String (tByte, 0, iLength));
}
tBytes = (the string after 'path=/Content-Encoding: gzip').getBytes();
Ve bu forum üzerinde bu bir:
InputStream gzipStream = new GZIPInputStream (new ByteArrayInputStream (tBytes));
Reader decoder = new InputStreamReader (gzipStream, "UTF-8");//<- I tried ISO-8859-1 and get the same exception
BufferedReader buffered = new BufferedReader (decoder);
sanırım Bu bir kodlama hatasıdır.
Saygılarımızla,
bill0ute
Merhaba Wim. Cevabınız için teşekkürler. İletiyi tBytes'i nasıl aldığımı açıklamak için güncelledim. Bir Content-Length başlığı olduğu için yanıtın parçalanmış olduğunu düşünmüyorum. Ama emin değilim. bill0ute – bill0ute
Merhaba Wim. HttpClient paketini kullanmaya çalışıyorum ama Java Doc bulamıyorum. Sadece örnekleri aldım. Bana bir sokete bağlanma ve bir getiri isteği göndermek için küçük bir örnek verebilir misiniz? Eğer isteyeceksiniz Senin durumunda http://hc.apache.org/httpclient-3.x/tutorial.html: Teşekkürler – bill0ute
öğretici bir göz atın, bu HTTP GET için yanıt gövdesini almak için basit bir örnek process 'responseBody' gibi şimdi 'tBytes' işlemek. –