.class Lorg/apache/http/impl/client/InternalHttpClient; .super Lorg/apache/http/impl/client/CloseableHttpClient; .source "InternalHttpClient.java" # interfaces .implements Lorg/apache/http/client/methods/Configurable; # instance fields .field private final authSchemeRegistry:Lorg/apache/http/config/Lookup; .annotation system Ldalvik/annotation/Signature; value = { "Lorg/apache/http/config/Lookup<", "Lorg/apache/http/auth/AuthSchemeProvider;", ">;" } .end annotation .end field .field private final closeables:Ljava/util/List; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/List<", "Ljava/io/Closeable;", ">;" } .end annotation .end field .field private final connManager:Lorg/apache/http/conn/HttpClientConnectionManager; .field private final cookieSpecRegistry:Lorg/apache/http/config/Lookup; .annotation system Ldalvik/annotation/Signature; value = { "Lorg/apache/http/config/Lookup<", "Lorg/apache/http/cookie/CookieSpecProvider;", ">;" } .end annotation .end field .field private final cookieStore:Lorg/apache/http/client/CookieStore; .field private final credentialsProvider:Lorg/apache/http/client/CredentialsProvider; .field private final defaultConfig:Lorg/apache/http/client/config/RequestConfig; .field private final execChain:Lorg/apache/http/impl/execchain/ClientExecChain; .field private final log:Lorg/apache/commons/logging/Log; .field private final routePlanner:Lorg/apache/http/conn/routing/HttpRoutePlanner; # direct methods .method public constructor (Lorg/apache/http/impl/execchain/ClientExecChain;Lorg/apache/http/conn/HttpClientConnectionManager;Lorg/apache/http/conn/routing/HttpRoutePlanner;Lorg/apache/http/config/Lookup;Lorg/apache/http/config/Lookup;Lorg/apache/http/client/CookieStore;Lorg/apache/http/client/CredentialsProvider;Lorg/apache/http/client/config/RequestConfig;Ljava/util/List;)V .registers 11 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lorg/apache/http/impl/execchain/ClientExecChain;", "Lorg/apache/http/conn/HttpClientConnectionManager;", "Lorg/apache/http/conn/routing/HttpRoutePlanner;", "Lorg/apache/http/config/Lookup<", "Lorg/apache/http/cookie/CookieSpecProvider;", ">;", "Lorg/apache/http/config/Lookup<", "Lorg/apache/http/auth/AuthSchemeProvider;", ">;", "Lorg/apache/http/client/CookieStore;", "Lorg/apache/http/client/CredentialsProvider;", "Lorg/apache/http/client/config/RequestConfig;", "Ljava/util/List<", "Ljava/io/Closeable;", ">;)V" } .end annotation .line 102 invoke-direct {p0}, Lorg/apache/http/impl/client/CloseableHttpClient;->()V .line 80 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/impl/client/InternalHttpClient;->log:Lorg/apache/commons/logging/Log; .line 103 const-string v0, "HTTP client exec chain" invoke-static {p1, v0}, Lorg/apache/http/util/Args;->notNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; .line 104 const-string v0, "HTTP connection manager" invoke-static {p2, v0}, Lorg/apache/http/util/Args;->notNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; .line 105 const-string v0, "HTTP route planner" invoke-static {p3, v0}, Lorg/apache/http/util/Args;->notNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; .line 106 iput-object p1, p0, Lorg/apache/http/impl/client/InternalHttpClient;->execChain:Lorg/apache/http/impl/execchain/ClientExecChain; .line 107 iput-object p2, p0, Lorg/apache/http/impl/client/InternalHttpClient;->connManager:Lorg/apache/http/conn/HttpClientConnectionManager; .line 108 iput-object p3, p0, Lorg/apache/http/impl/client/InternalHttpClient;->routePlanner:Lorg/apache/http/conn/routing/HttpRoutePlanner; .line 109 iput-object p4, p0, Lorg/apache/http/impl/client/InternalHttpClient;->cookieSpecRegistry:Lorg/apache/http/config/Lookup; .line 110 iput-object p5, p0, Lorg/apache/http/impl/client/InternalHttpClient;->authSchemeRegistry:Lorg/apache/http/config/Lookup; .line 111 iput-object p6, p0, Lorg/apache/http/impl/client/InternalHttpClient;->cookieStore:Lorg/apache/http/client/CookieStore; .line 112 iput-object p7, p0, Lorg/apache/http/impl/client/InternalHttpClient;->credentialsProvider:Lorg/apache/http/client/CredentialsProvider; .line 113 iput-object p8, p0, Lorg/apache/http/impl/client/InternalHttpClient;->defaultConfig:Lorg/apache/http/client/config/RequestConfig; .line 114 iput-object p9, p0, Lorg/apache/http/impl/client/InternalHttpClient;->closeables:Ljava/util/List; return-void .end method .method static synthetic access$000(Lorg/apache/http/impl/client/InternalHttpClient;)Lorg/apache/http/conn/HttpClientConnectionManager; .registers 1 .line 78 iget-object p0, p0, Lorg/apache/http/impl/client/InternalHttpClient;->connManager:Lorg/apache/http/conn/HttpClientConnectionManager; return-object p0 .end method .method private determineRoute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/conn/routing/HttpRoute; .registers 5 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/HttpException; } .end annotation if-nez p1, :cond_e .line 123 invoke-interface {p2}, Lorg/apache/http/HttpRequest;->getParams()Lorg/apache/http/params/HttpParams; move-result-object p1 const-string v0, "http.default-host" invoke-interface {p1, v0}, Lorg/apache/http/params/HttpParams;->getParameter(Ljava/lang/String;)Ljava/lang/Object; move-result-object p1 check-cast p1, Lorg/apache/http/HttpHost; .line 125 :cond_e iget-object v0, p0, Lorg/apache/http/impl/client/InternalHttpClient;->routePlanner:Lorg/apache/http/conn/routing/HttpRoutePlanner; invoke-interface {v0, p1, p2, p3}, Lorg/apache/http/conn/routing/HttpRoutePlanner;->determineRoute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/conn/routing/HttpRoute; move-result-object p1 return-object p1 .end method .method private setupContext(Lorg/apache/http/client/protocol/HttpClientContext;)V .registers 4 .line 129 const-string v0, "http.auth.target-scope" invoke-virtual {p1, v0}, Lorg/apache/http/client/protocol/HttpClientContext;->getAttribute(Ljava/lang/String;)Ljava/lang/Object; move-result-object v1 if-nez v1, :cond_10 .line 130 new-instance v1, Lorg/apache/http/auth/AuthState; invoke-direct {v1}, Lorg/apache/http/auth/AuthState;->()V invoke-virtual {p1, v0, v1}, Lorg/apache/http/client/protocol/HttpClientContext;->setAttribute(Ljava/lang/String;Ljava/lang/Object;)V .line 132 :cond_10 const-string v0, "http.auth.proxy-scope" invoke-virtual {p1, v0}, Lorg/apache/http/client/protocol/HttpClientContext;->getAttribute(Ljava/lang/String;)Ljava/lang/Object; move-result-object v1 if-nez v1, :cond_20 .line 133 new-instance v1, Lorg/apache/http/auth/AuthState; invoke-direct {v1}, Lorg/apache/http/auth/AuthState;->()V invoke-virtual {p1, v0, v1}, Lorg/apache/http/client/protocol/HttpClientContext;->setAttribute(Ljava/lang/String;Ljava/lang/Object;)V .line 135 :cond_20 const-string v0, "http.authscheme-registry" invoke-virtual {p1, v0}, Lorg/apache/http/client/protocol/HttpClientContext;->getAttribute(Ljava/lang/String;)Ljava/lang/Object; move-result-object v1 if-nez v1, :cond_2d .line 136 iget-object v1, p0, Lorg/apache/http/impl/client/InternalHttpClient;->authSchemeRegistry:Lorg/apache/http/config/Lookup; invoke-virtual {p1, v0, v1}, Lorg/apache/http/client/protocol/HttpClientContext;->setAttribute(Ljava/lang/String;Ljava/lang/Object;)V .line 138 :cond_2d const-string v0, "http.cookiespec-registry" invoke-virtual {p1, v0}, Lorg/apache/http/client/protocol/HttpClientContext;->getAttribute(Ljava/lang/String;)Ljava/lang/Object; move-result-object v1 if-nez v1, :cond_3a .line 139 iget-object v1, p0, Lorg/apache/http/impl/client/InternalHttpClient;->cookieSpecRegistry:Lorg/apache/http/config/Lookup; invoke-virtual {p1, v0, v1}, Lorg/apache/http/client/protocol/HttpClientContext;->setAttribute(Ljava/lang/String;Ljava/lang/Object;)V .line 141 :cond_3a const-string v0, "http.cookie-store" invoke-virtual {p1, v0}, Lorg/apache/http/client/protocol/HttpClientContext;->getAttribute(Ljava/lang/String;)Ljava/lang/Object; move-result-object v1 if-nez v1, :cond_47 .line 142 iget-object v1, p0, Lorg/apache/http/impl/client/InternalHttpClient;->cookieStore:Lorg/apache/http/client/CookieStore; invoke-virtual {p1, v0, v1}, Lorg/apache/http/client/protocol/HttpClientContext;->setAttribute(Ljava/lang/String;Ljava/lang/Object;)V .line 144 :cond_47 const-string v0, "http.auth.credentials-provider" invoke-virtual {p1, v0}, Lorg/apache/http/client/protocol/HttpClientContext;->getAttribute(Ljava/lang/String;)Ljava/lang/Object; move-result-object v1 if-nez v1, :cond_54 .line 145 iget-object v1, p0, Lorg/apache/http/impl/client/InternalHttpClient;->credentialsProvider:Lorg/apache/http/client/CredentialsProvider; invoke-virtual {p1, v0, v1}, Lorg/apache/http/client/protocol/HttpClientContext;->setAttribute(Ljava/lang/String;Ljava/lang/Object;)V .line 147 :cond_54 const-string v0, "http.request-config" invoke-virtual {p1, v0}, Lorg/apache/http/client/protocol/HttpClientContext;->getAttribute(Ljava/lang/String;)Ljava/lang/Object; move-result-object v1 if-nez v1, :cond_61 .line 148 iget-object v1, p0, Lorg/apache/http/impl/client/InternalHttpClient;->defaultConfig:Lorg/apache/http/client/config/RequestConfig; invoke-virtual {p1, v0, v1}, Lorg/apache/http/client/protocol/HttpClientContext;->setAttribute(Ljava/lang/String;Ljava/lang/Object;)V :cond_61 return-void .end method # virtual methods .method public close()V .registers 5 .line 198 iget-object v0, p0, Lorg/apache/http/impl/client/InternalHttpClient;->closeables:Ljava/util/List; if-eqz v0, :cond_23 .line 199 invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator; move-result-object v0 :goto_8 invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_23 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Ljava/io/Closeable; .line 201 :try_start_14 invoke-interface {v1}, Ljava/io/Closeable;->close()V :try_end_17 .catch Ljava/io/IOException; {:try_start_14 .. :try_end_17} :catch_18 goto :goto_8 :catch_18 move-exception v1 .line 203 iget-object v2, p0, Lorg/apache/http/impl/client/InternalHttpClient;->log:Lorg/apache/commons/logging/Log; invoke-virtual {v1}, Ljava/io/IOException;->getMessage()Ljava/lang/String; move-result-object v3 invoke-interface {v2, v3, v1}, Lorg/apache/commons/logging/Log;->error(Ljava/lang/Object;Ljava/lang/Throwable;)V goto :goto_8 :cond_23 return-void .end method .method protected doExecute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/client/methods/CloseableHttpResponse; .registers 8 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException;, Lorg/apache/http/client/ClientProtocolException; } .end annotation .line 157 const-string v0, "HTTP request" invoke-static {p2, v0}, Lorg/apache/http/util/Args;->notNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; .line 159 instance-of v0, p2, Lorg/apache/http/client/methods/HttpExecutionAware; const/4 v1, 0x0 if-eqz v0, :cond_e .line 160 move-object v0, p2 check-cast v0, Lorg/apache/http/client/methods/HttpExecutionAware; goto :goto_f :cond_e move-object v0, v1 .line 163 :goto_f :try_start_f invoke-static {p2, p1}, Lorg/apache/http/client/methods/HttpRequestWrapper;->wrap(Lorg/apache/http/HttpRequest;Lorg/apache/http/HttpHost;)Lorg/apache/http/client/methods/HttpRequestWrapper; move-result-object v2 if-eqz p3, :cond_16 goto :goto_1b .line 164 :cond_16 new-instance p3, Lorg/apache/http/protocol/BasicHttpContext; invoke-direct {p3}, Lorg/apache/http/protocol/BasicHttpContext;->()V :goto_1b invoke-static {p3}, Lorg/apache/http/client/protocol/HttpClientContext;->adapt(Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/client/protocol/HttpClientContext; move-result-object p3 .line 167 instance-of v3, p2, Lorg/apache/http/client/methods/Configurable; if-eqz v3, :cond_2a .line 168 move-object v1, p2 check-cast v1, Lorg/apache/http/client/methods/Configurable; invoke-interface {v1}, Lorg/apache/http/client/methods/Configurable;->getConfig()Lorg/apache/http/client/config/RequestConfig; move-result-object v1 :cond_2a if-nez v1, :cond_4e .line 171 invoke-interface {p2}, Lorg/apache/http/HttpRequest;->getParams()Lorg/apache/http/params/HttpParams; move-result-object p2 .line 172 instance-of v3, p2, Lorg/apache/http/params/HttpParamsNames; if-eqz v3, :cond_48 .line 173 move-object v3, p2 check-cast v3, Lorg/apache/http/params/HttpParamsNames; invoke-interface {v3}, Lorg/apache/http/params/HttpParamsNames;->getNames()Ljava/util/Set; move-result-object v3 invoke-interface {v3}, Ljava/util/Set;->isEmpty()Z move-result v3 if-nez v3, :cond_4e .line 174 iget-object v1, p0, Lorg/apache/http/impl/client/InternalHttpClient;->defaultConfig:Lorg/apache/http/client/config/RequestConfig; invoke-static {p2, v1}, Lorg/apache/http/client/params/HttpClientParamConfig;->getRequestConfig(Lorg/apache/http/params/HttpParams;Lorg/apache/http/client/config/RequestConfig;)Lorg/apache/http/client/config/RequestConfig; move-result-object v1 goto :goto_4e .line 177 :cond_48 iget-object v1, p0, Lorg/apache/http/impl/client/InternalHttpClient;->defaultConfig:Lorg/apache/http/client/config/RequestConfig; invoke-static {p2, v1}, Lorg/apache/http/client/params/HttpClientParamConfig;->getRequestConfig(Lorg/apache/http/params/HttpParams;Lorg/apache/http/client/config/RequestConfig;)Lorg/apache/http/client/config/RequestConfig; move-result-object v1 :cond_4e :goto_4e if-eqz v1, :cond_53 .line 181 invoke-virtual {p3, v1}, Lorg/apache/http/client/protocol/HttpClientContext;->setRequestConfig(Lorg/apache/http/client/config/RequestConfig;)V .line 183 :cond_53 invoke-direct {p0, p3}, Lorg/apache/http/impl/client/InternalHttpClient;->setupContext(Lorg/apache/http/client/protocol/HttpClientContext;)V .line 184 invoke-direct {p0, p1, v2, p3}, Lorg/apache/http/impl/client/InternalHttpClient;->determineRoute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/conn/routing/HttpRoute; move-result-object p1 .line 185 iget-object p2, p0, Lorg/apache/http/impl/client/InternalHttpClient;->execChain:Lorg/apache/http/impl/execchain/ClientExecChain; invoke-interface {p2, p1, v2, p3, v0}, Lorg/apache/http/impl/execchain/ClientExecChain;->execute(Lorg/apache/http/conn/routing/HttpRoute;Lorg/apache/http/client/methods/HttpRequestWrapper;Lorg/apache/http/client/protocol/HttpClientContext;Lorg/apache/http/client/methods/HttpExecutionAware;)Lorg/apache/http/client/methods/CloseableHttpResponse; move-result-object p1 :try_end_60 .catch Lorg/apache/http/HttpException; {:try_start_f .. :try_end_60} :catch_61 return-object p1 :catch_61 move-exception p1 .line 187 new-instance p2, Lorg/apache/http/client/ClientProtocolException; invoke-direct {p2, p1}, Lorg/apache/http/client/ClientProtocolException;->(Ljava/lang/Throwable;)V throw p2 .end method .method public getConfig()Lorg/apache/http/client/config/RequestConfig; .registers 2 .line 193 iget-object v0, p0, Lorg/apache/http/impl/client/InternalHttpClient;->defaultConfig:Lorg/apache/http/client/config/RequestConfig; return-object v0 .end method .method public getConnectionManager()Lorg/apache/http/conn/ClientConnectionManager; .registers 2 .line 217 new-instance v0, Lorg/apache/http/impl/client/InternalHttpClient$1; invoke-direct {v0, p0}, Lorg/apache/http/impl/client/InternalHttpClient$1;->(Lorg/apache/http/impl/client/InternalHttpClient;)V return-object v0 .end method .method public getParams()Lorg/apache/http/params/HttpParams; .registers 2 .line 211 new-instance v0, Ljava/lang/UnsupportedOperationException; invoke-direct {v0}, Ljava/lang/UnsupportedOperationException;->()V throw v0 .end method