.class public Lorg/apache/http/client/protocol/ResponseContentEncoding; .super Ljava/lang/Object; .source "ResponseContentEncoding.java" # interfaces .implements Lorg/apache/http/HttpResponseInterceptor; # static fields .field public static final UNCOMPRESSED:Ljava/lang/String; = "http.client.response.uncompressed" # instance fields .field private final decoderRegistry:Lorg/apache/http/config/Lookup; .annotation system Ldalvik/annotation/Signature; value = { "Lorg/apache/http/config/Lookup<", "Lorg/apache/http/client/entity/InputStreamFactory;", ">;" } .end annotation .end field .field private final ignoreUnknown:Z # direct methods .method public constructor ()V .registers 2 const/4 v0, 0x0 .line 102 invoke-direct {p0, v0}, Lorg/apache/http/client/protocol/ResponseContentEncoding;->(Lorg/apache/http/config/Lookup;)V return-void .end method .method public constructor (Lorg/apache/http/config/Lookup;)V .registers 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lorg/apache/http/config/Lookup<", "Lorg/apache/http/client/entity/InputStreamFactory;", ">;)V" } .end annotation const/4 v0, 0x1 .line 90 invoke-direct {p0, p1, v0}, Lorg/apache/http/client/protocol/ResponseContentEncoding;->(Lorg/apache/http/config/Lookup;Z)V return-void .end method .method public constructor (Lorg/apache/http/config/Lookup;Z)V .registers 5 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lorg/apache/http/config/Lookup<", "Lorg/apache/http/client/entity/InputStreamFactory;", ">;Z)V" } .end annotation .line 69 invoke-direct {p0}, Ljava/lang/Object;->()V if-eqz p1, :cond_6 goto :goto_2c .line 70 :cond_6 invoke-static {}, Lorg/apache/http/config/RegistryBuilder;->create()Lorg/apache/http/config/RegistryBuilder; move-result-object p1 const-string v0, "gzip" invoke-static {}, Lorg/apache/http/client/entity/GZIPInputStreamFactory;->getInstance()Lorg/apache/http/client/entity/GZIPInputStreamFactory; move-result-object v1 invoke-virtual {p1, v0, v1}, Lorg/apache/http/config/RegistryBuilder;->register(Ljava/lang/String;Ljava/lang/Object;)Lorg/apache/http/config/RegistryBuilder; move-result-object p1 const-string v0, "x-gzip" invoke-static {}, Lorg/apache/http/client/entity/GZIPInputStreamFactory;->getInstance()Lorg/apache/http/client/entity/GZIPInputStreamFactory; move-result-object v1 invoke-virtual {p1, v0, v1}, Lorg/apache/http/config/RegistryBuilder;->register(Ljava/lang/String;Ljava/lang/Object;)Lorg/apache/http/config/RegistryBuilder; move-result-object p1 const-string v0, "deflate" invoke-static {}, Lorg/apache/http/client/entity/DeflateInputStreamFactory;->getInstance()Lorg/apache/http/client/entity/DeflateInputStreamFactory; move-result-object v1 invoke-virtual {p1, v0, v1}, Lorg/apache/http/config/RegistryBuilder;->register(Ljava/lang/String;Ljava/lang/Object;)Lorg/apache/http/config/RegistryBuilder; move-result-object p1 invoke-virtual {p1}, Lorg/apache/http/config/RegistryBuilder;->build()Lorg/apache/http/config/Registry; move-result-object p1 :goto_2c iput-object p1, p0, Lorg/apache/http/client/protocol/ResponseContentEncoding;->decoderRegistry:Lorg/apache/http/config/Lookup; .line 76 iput-boolean p2, p0, Lorg/apache/http/client/protocol/ResponseContentEncoding;->ignoreUnknown:Z return-void .end method .method public constructor (Z)V .registers 3 const/4 v0, 0x0 .line 83 invoke-direct {p0, v0, p1}, Lorg/apache/http/client/protocol/ResponseContentEncoding;->(Lorg/apache/http/config/Lookup;Z)V return-void .end method # virtual methods .method public process(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)V .registers 8 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/HttpException;, Ljava/io/IOException; } .end annotation .line 109 invoke-interface {p1}, Lorg/apache/http/HttpResponse;->getEntity()Lorg/apache/http/HttpEntity; move-result-object v0 .line 111 invoke-static {p2}, Lorg/apache/http/client/protocol/HttpClientContext;->adapt(Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/client/protocol/HttpClientContext; move-result-object p2 .line 112 invoke-virtual {p2}, Lorg/apache/http/client/protocol/HttpClientContext;->getRequestConfig()Lorg/apache/http/client/config/RequestConfig; move-result-object p2 .line 115 invoke-virtual {p2}, Lorg/apache/http/client/config/RequestConfig;->isContentCompressionEnabled()Z move-result p2 if-eqz p2, :cond_87 if-eqz v0, :cond_87 invoke-interface {v0}, Lorg/apache/http/HttpEntity;->getContentLength()J move-result-wide v1 const-wide/16 v3, 0x0 cmp-long p2, v1, v3 if-eqz p2, :cond_87 .line 116 invoke-interface {v0}, Lorg/apache/http/HttpEntity;->getContentEncoding()Lorg/apache/http/Header; move-result-object p2 if-eqz p2, :cond_87 .line 118 invoke-interface {p2}, Lorg/apache/http/Header;->getElements()[Lorg/apache/http/HeaderElement; move-result-object p2 .line 119 array-length v0, p2 const/4 v1, 0x0 :goto_2a if-ge v1, v0, :cond_87 aget-object v2, p2, v1 .line 120 invoke-interface {v2}, Lorg/apache/http/HeaderElement;->getName()Ljava/lang/String; move-result-object v3 sget-object v4, Ljava/util/Locale;->ROOT:Ljava/util/Locale; invoke-virtual {v3, v4}, Ljava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String; move-result-object v3 .line 121 iget-object v4, p0, Lorg/apache/http/client/protocol/ResponseContentEncoding;->decoderRegistry:Lorg/apache/http/config/Lookup; invoke-interface {v4, v3}, Lorg/apache/http/config/Lookup;->lookup(Ljava/lang/String;)Ljava/lang/Object; move-result-object v4 check-cast v4, Lorg/apache/http/client/entity/InputStreamFactory; if-eqz v4, :cond_5e .line 123 new-instance v2, Lorg/apache/http/client/entity/DecompressingEntity; invoke-interface {p1}, Lorg/apache/http/HttpResponse;->getEntity()Lorg/apache/http/HttpEntity; move-result-object v3 invoke-direct {v2, v3, v4}, Lorg/apache/http/client/entity/DecompressingEntity;->(Lorg/apache/http/HttpEntity;Lorg/apache/http/client/entity/InputStreamFactory;)V invoke-interface {p1, v2}, Lorg/apache/http/HttpResponse;->setEntity(Lorg/apache/http/HttpEntity;)V .line 124 const-string v2, "Content-Length" invoke-interface {p1, v2}, Lorg/apache/http/HttpResponse;->removeHeaders(Ljava/lang/String;)V .line 125 const-string v2, "Content-Encoding" invoke-interface {p1, v2}, Lorg/apache/http/HttpResponse;->removeHeaders(Ljava/lang/String;)V .line 126 const-string v2, "Content-MD5" invoke-interface {p1, v2}, Lorg/apache/http/HttpResponse;->removeHeaders(Ljava/lang/String;)V goto :goto_84 .line 128 :cond_5e const-string v4, "identity" invoke-virtual {v4, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v3 if-nez v3, :cond_84 iget-boolean v3, p0, Lorg/apache/http/client/protocol/ResponseContentEncoding;->ignoreUnknown:Z if-eqz v3, :cond_6b goto :goto_84 .line 129 :cond_6b new-instance p1, Lorg/apache/http/HttpException; new-instance p2, Ljava/lang/StringBuilder; const-string v0, "Unsupported Content-Encoding: " invoke-direct {p2, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-interface {v2}, Lorg/apache/http/HeaderElement;->getName()Ljava/lang/String; move-result-object v0 invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p2 invoke-direct {p1, p2}, Lorg/apache/http/HttpException;->(Ljava/lang/String;)V throw p1 :cond_84 :goto_84 add-int/lit8 v1, v1, 0x1 goto :goto_2a :cond_87 return-void .end method