2013-05-08 24 views
5

Bu belgede ne yazdığını anlayamıyorum.Android HttpURLConnection: gzip sıkıştırma

Varsayılan olarak, HttpURLConnection uygulamasının bu uygulaması, sunucuların gzip sıkıştırması kullanmasını istemektedir. GetContentLength() iletilen bayt sayısını döndürdüğünden, getInputStream() öğesinden kaç bayt okunabileceğini tahmin etmek için bu yöntemi kullanamazsınız. Bunun yerine, bitene kadar bu akışı okuyun: read() -1 değerini döndürdüğünde. Gzip sıkıştırma istek başlığında kabul edilebilir kodlamaları ayarlayarak devre dışı bırakılabilir:

urlConnection.setRequestProperty("Accept-Encoding", "identity"); 

Ben şu anki uygulama aslında (conn.getInputStream() kullanarak) geri döndürmeden önce akışı sıkıştırmasını olmadığını bilmek istiyorum ya da eğer basitçe bağlantı otomatik olarak gzip kodlaması için başlık gönderir ve bununla yönetmek gerekiyor diyor.

Teşekkürler.

cevap

11

Bunu işlemeye gerek yoktur. Sadece this blogpost itibaren conn.getInputStream()

kullanın: Gingerbread yılında

, biz şeffaf yanıt sıkıştırma eklendi. HttpURLConnection otomatik giden isteklere bu başlığı ekleyin ve karşılık gelen tepkiyi idare edecek:

-Kabul Kodlama: gzip

+1

Kaynak: [Android Geliştiricileri Blogu - Android'in HTTP Müşteriler] (http: // android-geliştiriciler. blogspot.com/2011/09/androids-http-clients.html) – Czechnology