.class public Lorg/apache/http/client/protocol/RequestAddCookies; .super Ljava/lang/Object; .source "RequestAddCookies.java" # interfaces .implements Lorg/apache/http/HttpRequestInterceptor; # instance fields .field private final log:Lorg/apache/commons/logging/Log; # direct methods .method public constructor ()V .registers 2 .line 73 invoke-direct {p0}, Ljava/lang/Object;->()V .line 70 invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v0 invoke-static {v0}, Lorg/apache/commons/logging/LogFactory;->getLog(Ljava/lang/Class;)Lorg/apache/commons/logging/Log; move-result-object v0 iput-object v0, p0, Lorg/apache/http/client/protocol/RequestAddCookies;->log:Lorg/apache/commons/logging/Log; return-void .end method # virtual methods .method public process(Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)V .registers 14 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/HttpException;, Ljava/io/IOException; } .end annotation .line 79 const-string v0, "HTTP request" invoke-static {p1, v0}, Lorg/apache/http/util/Args;->notNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; .line 80 const-string v0, "HTTP context" invoke-static {p2, v0}, Lorg/apache/http/util/Args;->notNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; .line 82 invoke-interface {p1}, Lorg/apache/http/HttpRequest;->getRequestLine()Lorg/apache/http/RequestLine; move-result-object v0 invoke-interface {v0}, Lorg/apache/http/RequestLine;->getMethod()Ljava/lang/String; move-result-object v0 .line 83 const-string v1, "CONNECT" invoke-virtual {v0, v1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z move-result v0 if-eqz v0, :cond_1b return-void .line 87 :cond_1b invoke-static {p2}, Lorg/apache/http/client/protocol/HttpClientContext;->adapt(Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/client/protocol/HttpClientContext; move-result-object v0 .line 90 invoke-virtual {v0}, Lorg/apache/http/client/protocol/HttpClientContext;->getCookieStore()Lorg/apache/http/client/CookieStore; move-result-object v1 if-nez v1, :cond_2d .line 92 iget-object p1, p0, Lorg/apache/http/client/protocol/RequestAddCookies;->log:Lorg/apache/commons/logging/Log; const-string p2, "Cookie store not specified in HTTP context" invoke-interface {p1, p2}, Lorg/apache/commons/logging/Log;->debug(Ljava/lang/Object;)V return-void .line 97 :cond_2d invoke-virtual {v0}, Lorg/apache/http/client/protocol/HttpClientContext;->getCookieSpecRegistry()Lorg/apache/http/config/Lookup; move-result-object v2 if-nez v2, :cond_3b .line 99 iget-object p1, p0, Lorg/apache/http/client/protocol/RequestAddCookies;->log:Lorg/apache/commons/logging/Log; const-string p2, "CookieSpec registry not specified in HTTP context" invoke-interface {p1, p2}, Lorg/apache/commons/logging/Log;->debug(Ljava/lang/Object;)V return-void .line 104 :cond_3b invoke-virtual {v0}, Lorg/apache/http/client/protocol/HttpClientContext;->getTargetHost()Lorg/apache/http/HttpHost; move-result-object v3 if-nez v3, :cond_49 .line 106 iget-object p1, p0, Lorg/apache/http/client/protocol/RequestAddCookies;->log:Lorg/apache/commons/logging/Log; const-string p2, "Target host not set in the context" invoke-interface {p1, p2}, Lorg/apache/commons/logging/Log;->debug(Ljava/lang/Object;)V return-void .line 111 :cond_49 invoke-virtual {v0}, Lorg/apache/http/client/protocol/HttpClientContext;->getHttpRoute()Lorg/apache/http/conn/routing/RouteInfo; move-result-object v4 if-nez v4, :cond_57 .line 113 iget-object p1, p0, Lorg/apache/http/client/protocol/RequestAddCookies;->log:Lorg/apache/commons/logging/Log; const-string p2, "Connection route not set in the context" invoke-interface {p1, p2}, Lorg/apache/commons/logging/Log;->debug(Ljava/lang/Object;)V return-void .line 117 :cond_57 invoke-virtual {v0}, Lorg/apache/http/client/protocol/HttpClientContext;->getRequestConfig()Lorg/apache/http/client/config/RequestConfig; move-result-object v5 .line 118 invoke-virtual {v5}, Lorg/apache/http/client/config/RequestConfig;->getCookieSpec()Ljava/lang/String; move-result-object v5 if-nez v5, :cond_63 .line 120 const-string v5, "default" .line 122 :cond_63 iget-object v6, p0, Lorg/apache/http/client/protocol/RequestAddCookies;->log:Lorg/apache/commons/logging/Log; invoke-interface {v6}, Lorg/apache/commons/logging/Log;->isDebugEnabled()Z move-result v6 if-eqz v6, :cond_7f .line 123 iget-object v6, p0, Lorg/apache/http/client/protocol/RequestAddCookies;->log:Lorg/apache/commons/logging/Log; new-instance v7, Ljava/lang/StringBuilder; const-string v8, "CookieSpec selected: " invoke-direct {v7, v8}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v7, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v7 invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v7 invoke-interface {v6, v7}, Lorg/apache/commons/logging/Log;->debug(Ljava/lang/Object;)V .line 127 :cond_7f instance-of v6, p1, Lorg/apache/http/client/methods/HttpUriRequest; const/4 v7, 0x0 if-eqz v6, :cond_8c .line 128 move-object v6, p1 check-cast v6, Lorg/apache/http/client/methods/HttpUriRequest; invoke-interface {v6}, Lorg/apache/http/client/methods/HttpUriRequest;->getURI()Ljava/net/URI; move-result-object v6 goto :goto_9b .line 131 :cond_8c :try_start_8c new-instance v6, Ljava/net/URI; invoke-interface {p1}, Lorg/apache/http/HttpRequest;->getRequestLine()Lorg/apache/http/RequestLine; move-result-object v8 invoke-interface {v8}, Lorg/apache/http/RequestLine;->getUri()Ljava/lang/String; move-result-object v8 invoke-direct {v6, v8}, Ljava/net/URI;->(Ljava/lang/String;)V :try_end_99 .catch Ljava/net/URISyntaxException; {:try_start_8c .. :try_end_99} :catch_9a goto :goto_9b :catch_9a move-object v6, v7 :goto_9b if-eqz v6, :cond_a1 .line 135 invoke-virtual {v6}, Ljava/net/URI;->getPath()Ljava/lang/String; move-result-object v7 .line 136 :cond_a1 invoke-virtual {v3}, Lorg/apache/http/HttpHost;->getHostName()Ljava/lang/String; move-result-object v6 .line 137 invoke-virtual {v3}, Lorg/apache/http/HttpHost;->getPort()I move-result v3 if-gez v3, :cond_b3 .line 139 invoke-interface {v4}, Lorg/apache/http/conn/routing/RouteInfo;->getTargetHost()Lorg/apache/http/HttpHost; move-result-object v3 invoke-virtual {v3}, Lorg/apache/http/HttpHost;->getPort()I move-result v3 .line 142 :cond_b3 new-instance v8, Lorg/apache/http/cookie/CookieOrigin; const/4 v9, 0x0 if-ltz v3, :cond_b9 goto :goto_ba :cond_b9 move v3, v9 :goto_ba invoke-static {v7}, Lorg/apache/http/util/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z move-result v10 if-nez v10, :cond_c1 goto :goto_c3 :cond_c1 const-string v7, "/" :goto_c3 invoke-interface {v4}, Lorg/apache/http/conn/routing/RouteInfo;->isSecure()Z move-result v4 invoke-direct {v8, v6, v3, v7, v4}, Lorg/apache/http/cookie/CookieOrigin;->(Ljava/lang/String;ILjava/lang/String;Z)V .line 149 invoke-interface {v2, v5}, Lorg/apache/http/config/Lookup;->lookup(Ljava/lang/String;)Ljava/lang/Object; move-result-object v2 check-cast v2, Lorg/apache/http/cookie/CookieSpecProvider; if-nez v2, :cond_ef .line 151 iget-object p1, p0, Lorg/apache/http/client/protocol/RequestAddCookies;->log:Lorg/apache/commons/logging/Log; invoke-interface {p1}, Lorg/apache/commons/logging/Log;->isDebugEnabled()Z move-result p1 if-eqz p1, :cond_ee .line 152 iget-object p1, p0, Lorg/apache/http/client/protocol/RequestAddCookies;->log:Lorg/apache/commons/logging/Log; new-instance p2, Ljava/lang/StringBuilder; const-string v0, "Unsupported cookie policy: " invoke-direct {p2, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p2, v5}, 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-interface {p1, p2}, Lorg/apache/commons/logging/Log;->debug(Ljava/lang/Object;)V :cond_ee return-void .line 157 :cond_ef invoke-interface {v2, v0}, Lorg/apache/http/cookie/CookieSpecProvider;->create(Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/cookie/CookieSpec; move-result-object v0 .line 159 invoke-interface {v1}, Lorg/apache/http/client/CookieStore;->getCookies()Ljava/util/List; move-result-object v2 .line 161 new-instance v3, Ljava/util/ArrayList; invoke-direct {v3}, Ljava/util/ArrayList;->()V .line 162 new-instance v4, Ljava/util/Date; invoke-direct {v4}, Ljava/util/Date;->()V .line 164 invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; move-result-object v2 :cond_105 :goto_105 invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z move-result v5 if-eqz v5, :cond_16a invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v5 check-cast v5, Lorg/apache/http/cookie/Cookie; .line 165 invoke-interface {v5, v4}, Lorg/apache/http/cookie/Cookie;->isExpired(Ljava/util/Date;)Z move-result v6 const-string v7, "Cookie " if-nez v6, :cond_147 .line 166 invoke-interface {v0, v5, v8}, Lorg/apache/http/cookie/CookieSpec;->match(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)Z move-result v6 if-eqz v6, :cond_105 .line 167 iget-object v6, p0, Lorg/apache/http/client/protocol/RequestAddCookies;->log:Lorg/apache/commons/logging/Log; invoke-interface {v6}, Lorg/apache/commons/logging/Log;->isDebugEnabled()Z move-result v6 if-eqz v6, :cond_143 .line 168 iget-object v6, p0, Lorg/apache/http/client/protocol/RequestAddCookies;->log:Lorg/apache/commons/logging/Log; new-instance v10, Ljava/lang/StringBuilder; invoke-direct {v10, v7}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v10, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v7 const-string v10, " match " invoke-virtual {v7, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v7 invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v7 invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v7 invoke-interface {v6, v7}, Lorg/apache/commons/logging/Log;->debug(Ljava/lang/Object;)V .line 170 :cond_143 invoke-interface {v3, v5}, Ljava/util/List;->add(Ljava/lang/Object;)Z goto :goto_105 .line 173 :cond_147 iget-object v6, p0, Lorg/apache/http/client/protocol/RequestAddCookies;->log:Lorg/apache/commons/logging/Log; invoke-interface {v6}, Lorg/apache/commons/logging/Log;->isDebugEnabled()Z move-result v6 if-eqz v6, :cond_167 .line 174 iget-object v6, p0, Lorg/apache/http/client/protocol/RequestAddCookies;->log:Lorg/apache/commons/logging/Log; new-instance v9, Ljava/lang/StringBuilder; invoke-direct {v9, v7}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v9, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v5 const-string v7, " expired" invoke-virtual {v5, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v5 invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v5 invoke-interface {v6, v5}, Lorg/apache/commons/logging/Log;->debug(Ljava/lang/Object;)V :cond_167 const/4 v5, 0x1 move v9, v5 goto :goto_105 :cond_16a if-eqz v9, :cond_16f .line 183 invoke-interface {v1, v4}, Lorg/apache/http/client/CookieStore;->clearExpired(Ljava/util/Date;)Z .line 186 :cond_16f invoke-interface {v3}, Ljava/util/List;->isEmpty()Z move-result v1 if-nez v1, :cond_18d .line 187 invoke-interface {v0, v3}, Lorg/apache/http/cookie/CookieSpec;->formatCookies(Ljava/util/List;)Ljava/util/List; move-result-object v1 .line 188 invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator; move-result-object v1 :goto_17d invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z move-result v2 if-eqz v2, :cond_18d invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v2 check-cast v2, Lorg/apache/http/Header; .line 189 invoke-interface {p1, v2}, Lorg/apache/http/HttpRequest;->addHeader(Lorg/apache/http/Header;)V goto :goto_17d .line 193 :cond_18d invoke-interface {v0}, Lorg/apache/http/cookie/CookieSpec;->getVersion()I move-result v1 if-lez v1, :cond_19c .line 195 invoke-interface {v0}, Lorg/apache/http/cookie/CookieSpec;->getVersionHeader()Lorg/apache/http/Header; move-result-object v1 if-eqz v1, :cond_19c .line 198 invoke-interface {p1, v1}, Lorg/apache/http/HttpRequest;->addHeader(Lorg/apache/http/Header;)V .line 204 :cond_19c const-string p1, "http.cookie-spec" invoke-interface {p2, p1, v0}, Lorg/apache/http/protocol/HttpContext;->setAttribute(Ljava/lang/String;Ljava/lang/Object;)V .line 205 const-string p1, "http.cookie-origin" invoke-interface {p2, p1, v8}, Lorg/apache/http/protocol/HttpContext;->setAttribute(Ljava/lang/String;Ljava/lang/Object;)V return-void .end method