HttpConnection.smali

.class public Lcom/h/r/HttpConnection;
.super Ljava/lang/Object;


# instance fields
.field private mExecutor:Lcom/h/r/NetworkExecutor;


# direct methods
.method public constructor <init>(Lcom/h/r/NetworkExecutor;)V
    .registers 2

    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    iput-object p1, p0, Lcom/h/r/HttpConnection;->mExecutor:Lcom/h/r/NetworkExecutor;

    return-void
.end method

.method private createConnectionAndWriteData(Lcom/h/r/BasicRequest;)Lcom/h/r/Network;
    .registers 7
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lcom/h/r/BasicRequest",
            "<*>;)",
            "Lcom/h/r/Network;"
        }
    .end annotation

    const/4 v2, 0x0

    invoke-virtual {p1}, Lcom/h/r/BasicRequest;->getRetryCount()I

    move-result v0

    add-int/lit8 v1, v0, 0x1

    const/4 v0, 0x1

    move v4, v1

    move-object v3, v2

    move-object v1, v2

    :goto_b
    if-eqz v0, :cond_19

    if-lez v4, :cond_19

    :try_start_f
    invoke-direct {p0, p1}, Lcom/h/r/HttpConnection;->createNetwork(Lcom/h/r/BasicRequest;)Lcom/h/r/Network;
    :try_end_12
    .catch Ljava/lang/Exception; {:try_start_f .. :try_end_12} :catch_2e

    move-result-object v1

    const/4 v0, 0x0

    move-object v3, v1

    move-object v1, v2

    :goto_16
    add-int/lit8 v4, v4, -0x1

    goto :goto_b

    :cond_19
    if-eqz v0, :cond_1c

    throw v1

    :cond_1c
    invoke-virtual {p1}, Lcom/h/r/BasicRequest;->getRequestMethod()Lcom/h/r/RequestMethod;

    move-result-object v0

    invoke-virtual {v0}, Lcom/h/r/RequestMethod;->allowRequestBody()Z

    move-result v0

    if-eqz v0, :cond_2d

    invoke-interface {v3}, Lcom/h/r/Network;->getOutputStream()Ljava/io/OutputStream;

    move-result-object v0

    invoke-direct {p0, p1, v0}, Lcom/h/r/HttpConnection;->writeRequestBody(Lcom/h/r/BasicRequest;Ljava/io/OutputStream;)V

    :cond_2d
    return-object v3

    :catch_2e
    move-exception v1

    goto :goto_16
.end method

.method private createNetwork(Lcom/h/r/BasicRequest;)Lcom/h/r/Network;
    .registers 8
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lcom/h/r/BasicRequest",
            "<*>;)",
            "Lcom/h/r/Network;"
        }
    .end annotation

    invoke-virtual {p1}, Lcom/h/r/BasicRequest;->onPreExecute()V

    invoke-virtual {p1}, Lcom/h/r/BasicRequest;->url()Ljava/lang/String;

    move-result-object v0

    new-instance v1, Ljava/lang/StringBuilder;

    const-string/jumbo v2, "Request address: "

    invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-static {v1}, Lcom/h/r/Logger;->i(Ljava/lang/Object;)V

    new-instance v1, Ljava/lang/StringBuilder;

    const-string/jumbo v2, "Request method: "

    invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    invoke-virtual {p1}, Lcom/h/r/BasicRequest;->getRequestMethod()Lcom/h/r/RequestMethod;

    move-result-object v2

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-static {v1}, Lcom/h/r/Logger;->i(Ljava/lang/Object;)V

    invoke-virtual {p1}, Lcom/h/r/BasicRequest;->getHeaders()Lcom/h/r/Headers;

    move-result-object v1

    const-string/jumbo v2, "Content-Type"

    invoke-virtual {p1}, Lcom/h/r/BasicRequest;->getContentType()Ljava/lang/String;

    move-result-object v3

    invoke-virtual {v1, v2, v3}, Lcom/h/r/Headers;->set(Ljava/lang/Object;Ljava/lang/Object;)V

    const-string/jumbo v2, "Connection"

    invoke-virtual {v1, v2}, Lcom/h/r/Headers;->getValues(Ljava/lang/String;)Ljava/util/List;

    move-result-object v2

    if-eqz v2, :cond_4e

    invoke-interface {v2}, Ljava/util/List;->size()I

    move-result v2

    if-nez v2, :cond_57

    :cond_4e
    const-string/jumbo v2, "Connection"

    const-string/jumbo v3, "keep-alive"

    invoke-virtual {v1, v2, v3}, Lcom/h/r/Headers;->add(Ljava/lang/Object;Ljava/lang/Object;)V

    :cond_57
    invoke-virtual {p1}, Lcom/h/r/BasicRequest;->getRequestMethod()Lcom/h/r/RequestMethod;

    move-result-object v2

    invoke-virtual {v2}, Lcom/h/r/RequestMethod;->allowRequestBody()Z

    move-result v2

    if-eqz v2, :cond_6f

    const-string/jumbo v2, "Content-Length"

    invoke-virtual {p1}, Lcom/h/r/BasicRequest;->getContentLength()J

    move-result-wide v4

    invoke-static {v4, v5}, Ljava/lang/Long;->toString(J)Ljava/lang/String;

    move-result-object v3

    invoke-virtual {v1, v2, v3}, Lcom/h/r/Headers;->set(Ljava/lang/Object;Ljava/lang/Object;)V

    :cond_6f
    new-instance v2, Ljava/net/URI;

    invoke-direct {v2, v0}, Ljava/net/URI;-><init>(Ljava/lang/String;)V

    invoke-static {}, Lcom/h/r/NoHttp;->getCookieManager()Ljava/net/CookieManager;

    move-result-object v0

    invoke-virtual {v1, v2, v0}, Lcom/h/r/Headers;->addCookie(Ljava/net/URI;Ljava/net/CookieHandler;)V

    iget-object v0, p0, Lcom/h/r/HttpConnection;->mExecutor:Lcom/h/r/NetworkExecutor;

    invoke-interface {v0, p1}, Lcom/h/r/NetworkExecutor;->execute(Lcom/h/r/BasicRequest;)Lcom/h/r/Network;

    move-result-object v0

    return-object v0
.end method

.method private handleRedirect(Lcom/h/r/BasicRequest;Lcom/h/r/Headers;)Lcom/h/r/Connection;
    .registers 9
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lcom/h/r/BasicRequest",
            "<*>;",
            "Lcom/h/r/Headers;",
            ")",
            "Lcom/h/r/Connection;"
        }
    .end annotation

    const/4 v1, 0x0

    invoke-virtual {p1}, Lcom/h/r/BasicRequest;->getRedirectHandler()Lcom/h/r/RedirectHandler;

    move-result-object v0

    if-eqz v0, :cond_107

    invoke-interface {v0, p2}, Lcom/h/r/RedirectHandler;->isDisallowedRedirect(Lcom/h/r/Headers;)Z

    move-result v2

    if-eqz v2, :cond_13

    new-instance v0, Lcom/h/r/Connection;

    invoke-direct {v0, v1, p2, v1, v1}, Lcom/h/r/Connection;-><init>(Lcom/h/r/Network;Lcom/h/r/Headers;Ljava/io/InputStream;Ljava/lang/Exception;)V

    :goto_12
    return-object v0

    :cond_13
    invoke-interface {v0, p1, p2}, Lcom/h/r/RedirectHandler;->onRedirect(Lcom/h/r/BasicRequest;Lcom/h/r/Headers;)Lcom/h/r/BasicRequest;

    move-result-object v0

    :goto_17
    if-nez v0, :cond_fe

    invoke-virtual {p2}, Lcom/h/r/Headers;->getLocation()Ljava/lang/String;

    move-result-object v0

    invoke-static {v0}, Landroid/webkit/URLUtil;->isNetworkUrl(Ljava/lang/String;)Z

    move-result v1

    if-nez v1, :cond_50

    invoke-virtual {p1}, Lcom/h/r/BasicRequest;->url()Ljava/lang/String;

    move-result-object v1

    :try_start_27
    new-instance v2, Ljava/net/URL;

    invoke-direct {v2, v1}, Ljava/net/URL;-><init>(Ljava/lang/String;)V

    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v2}, Ljava/net/URL;->getProtocol()Ljava/lang/String;

    move-result-object v3

    invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    const-string/jumbo v3, "://"

    invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v2}, Ljava/net/URL;->getHost()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    :try_end_4f
    .catch Ljava/net/MalformedURLException; {:try_start_27 .. :try_end_4f} :catch_104

    move-result-object v0

    :cond_50
    :goto_50
    new-instance v2, Lcom/h/r/HttpConnection$1;

    invoke-virtual {p1}, Lcom/h/r/BasicRequest;->getRequestMethod()Lcom/h/r/RequestMethod;

    move-result-object v1

    invoke-direct {v2, p0, v0, v1}, Lcom/h/r/HttpConnection$1;-><init>(Lcom/h/r/HttpConnection;Ljava/lang/String;Lcom/h/r/RequestMethod;)V

    invoke-virtual {p1}, Lcom/h/r/BasicRequest;->getHeaders()Lcom/h/r/Headers;

    move-result-object v0

    invoke-virtual {v0}, Lcom/h/r/Headers;->entrySet()Ljava/util/Set;

    move-result-object v0

    invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;

    move-result-object v3

    :cond_65
    invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_92

    invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    move-object v1, v0

    check-cast v1, Ljava/util/Map$Entry;

    invoke-interface {v1}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/lang/String;

    invoke-interface {v1}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Ljava/util/List;

    invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v4

    :goto_82
    invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z

    move-result v1

    if-eqz v1, :cond_65

    invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Ljava/lang/String;

    invoke-virtual {v2, v0, v1}, Lcom/h/r/BasicRequest;->addHeader(Ljava/lang/String;Ljava/lang/String;)Lcom/h/r/BasicRequest;

    goto :goto_82

    :cond_92
    invoke-virtual {p1}, Lcom/h/r/BasicRequest;->getParamKeyValues()Lcom/h/q/MultiValueMap;

    move-result-object v0

    invoke-interface {v0}, Lcom/h/q/MultiValueMap;->entrySet()Ljava/util/Set;

    move-result-object v0

    invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;

    move-result-object v3

    :cond_9e
    invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_da

    invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/util/Map$Entry;

    invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Ljava/lang/String;

    invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/util/List;

    invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v4

    :cond_ba
    :goto_ba
    invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_9e

    invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    instance-of v5, v0, Ljava/lang/CharSequence;

    if-eqz v5, :cond_d0

    invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {v2, v1, v0}, Lcom/h/r/BasicRequest;->add(Ljava/lang/String;Ljava/lang/String;)Lcom/h/r/BasicRequest;

    goto :goto_ba

    :cond_d0
    instance-of v5, v0, Lcom/h/r/Binary;

    if-eqz v5, :cond_ba

    check-cast v0, Lcom/h/r/Binary;

    invoke-virtual {v2, v1, v0}, Lcom/h/r/BasicRequest;->add(Ljava/lang/String;Lcom/h/r/Binary;)Lcom/h/r/BasicRequest;

    goto :goto_ba

    :cond_da
    invoke-virtual {p1}, Lcom/h/r/BasicRequest;->getRedirectHandler()Lcom/h/r/RedirectHandler;

    move-result-object v0

    invoke-virtual {v2, v0}, Lcom/h/r/BasicRequest;->setRedirectHandler(Lcom/h/r/RedirectHandler;)Lcom/h/r/BasicRequest;

    invoke-virtual {p1}, Lcom/h/r/BasicRequest;->getSSLSocketFactory()Ljavax/net/ssl/SSLSocketFactory;

    move-result-object v0

    invoke-virtual {v2, v0}, Lcom/h/r/BasicRequest;->setSSLSocketFactory(Ljavax/net/ssl/SSLSocketFactory;)Lcom/h/r/BasicRequest;

    invoke-virtual {p1}, Lcom/h/r/BasicRequest;->getHostnameVerifier()Ljavax/net/ssl/HostnameVerifier;

    move-result-object v0

    invoke-virtual {v2, v0}, Lcom/h/r/BasicRequest;->setHostnameVerifier(Ljavax/net/ssl/HostnameVerifier;)Lcom/h/r/BasicRequest;

    invoke-virtual {p1}, Lcom/h/r/BasicRequest;->getParamsEncoding()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {v2, v0}, Lcom/h/r/BasicRequest;->setParamsEncoding(Ljava/lang/String;)Lcom/h/r/BasicRequest;

    invoke-virtual {p1}, Lcom/h/r/BasicRequest;->getProxy()Ljava/net/Proxy;

    move-result-object v0

    invoke-virtual {v2, v0}, Lcom/h/r/BasicRequest;->setProxy(Ljava/net/Proxy;)Lcom/h/r/BasicRequest;

    move-object v0, v2

    :cond_fe
    invoke-virtual {p0, v0}, Lcom/h/r/HttpConnection;->getConnection(Lcom/h/r/BasicRequest;)Lcom/h/r/Connection;

    move-result-object v0

    goto/16 :goto_12

    :catch_104
    move-exception v1

    goto/16 :goto_50

    :cond_107
    move-object v0, v1

    goto/16 :goto_17
.end method

.method public static hasResponseBody(I)Z
    .registers 2

    const/16 v0, 0x64

    if-gt v0, p0, :cond_8

    const/16 v0, 0xc8

    if-lt p0, v0, :cond_1a

    :cond_8
    const/16 v0, 0xcc

    if-eq p0, v0, :cond_1a

    const/16 v0, 0xcd

    if-eq p0, v0, :cond_1a

    const/16 v0, 0x12c

    if-gt v0, p0, :cond_18

    const/16 v0, 0x190

    if-lt p0, v0, :cond_1a

    :cond_18
    const/4 v0, 0x1

    :goto_19
    return v0

    :cond_1a
    const/4 v0, 0x0

    goto :goto_19
.end method

.method public static hasResponseBody(Lcom/h/r/RequestMethod;I)Z
    .registers 3

    sget-object v0, Lcom/h/r/RequestMethod;->HEAD:Lcom/h/r/RequestMethod;

    if-eq p0, v0, :cond_c

    invoke-static {p1}, Lcom/h/r/HttpConnection;->hasResponseBody(I)Z

    move-result v0

    if-eqz v0, :cond_c

    const/4 v0, 0x1

    :goto_b
    return v0

    :cond_c
    const/4 v0, 0x0

    goto :goto_b
.end method

.method private parseResponseHeaders(Ljava/net/URI;ILjava/util/Map;)Lcom/h/r/Headers;
    .registers 12
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/net/URI;",
            "I",
            "Ljava/util/Map",
            "<",
            "Ljava/lang/String;",
            "Ljava/util/List",
            "<",
            "Ljava/lang/String;",
            ">;>;)",
            "Lcom/h/r/Headers;"
        }
    .end annotation

    :try_start_0
    invoke-static {}, Lcom/h/r/NoHttp;->getInitializeConfig()Lcom/h/r/InitializationConfig;

    move-result-object v0

    invoke-virtual {v0}, Lcom/h/r/InitializationConfig;->getCookieManager()Ljava/net/CookieManager;

    move-result-object v0

    invoke-virtual {v0, p1, p3}, Ljava/net/CookieManager;->put(Ljava/net/URI;Ljava/util/Map;)V
    :try_end_b
    .catch Ljava/io/IOException; {:try_start_0 .. :try_end_b} :catch_32

    :goto_b
    new-instance v2, Lcom/h/r/Headers;

    invoke-direct {v2}, Lcom/h/r/Headers;-><init>()V

    invoke-interface {p3}, Ljava/util/Map;->entrySet()Ljava/util/Set;

    move-result-object v0

    invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;

    move-result-object v1

    :goto_18
    invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_52

    invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/util/Map$Entry;

    invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;

    move-result-object v3

    invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/util/List;

    invoke-virtual {v2, v3, v0}, Lcom/h/r/Headers;->add(Ljava/lang/Object;Ljava/util/List;)V

    goto :goto_18

    :catch_32
    move-exception v0

    new-instance v1, Ljava/lang/StringBuilder;

    const-string/jumbo v2, "Save cookie filed: "

    invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    invoke-virtual {p1}, Ljava/net/URI;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    const-string/jumbo v2, "."

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-static {v0, v1}, Lcom/h/r/Logger;->e(Ljava/lang/Throwable;Ljava/lang/String;)V

    goto :goto_b

    :cond_52
    const-string/jumbo v0, "ResponseCode"

    invoke-static {p2}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v2, v0, v1}, Lcom/h/r/Headers;->set(Ljava/lang/Object;Ljava/lang/Object;)V

    invoke-virtual {v2}, Lcom/h/r/Headers;->keySet()Ljava/util/Set;

    move-result-object v0

    invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;

    move-result-object v3

    :cond_64
    invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_ab

    invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    move-object v1, v0

    check-cast v1, Ljava/lang/String;

    invoke-virtual {v2, v1}, Lcom/h/r/Headers;->getValues(Ljava/lang/String;)Ljava/util/List;

    move-result-object v0

    invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v4

    :goto_79
    invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_64

    invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/lang/String;

    new-instance v5, Ljava/lang/StringBuilder;

    invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V

    invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

    move-result v6

    if-nez v6, :cond_9a

    invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v6

    const-string/jumbo v7, ": "

    invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    :cond_9a
    invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

    move-result v6

    if-nez v6, :cond_a3

    invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    :cond_a3
    invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-static {v0}, Lcom/h/r/Logger;->i(Ljava/lang/Object;)V

    goto :goto_79

    :cond_ab
    return-object v2
.end method

.method private writeRequestBody(Lcom/h/r/BasicRequest;Ljava/io/OutputStream;)V
    .registers 4
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lcom/h/r/BasicRequest",
            "<*>;",
            "Ljava/io/OutputStream;",
            ")V"
        }
    .end annotation

    const-string/jumbo v0, "-------Send request data start-------"

    invoke-static {v0}, Lcom/h/r/Logger;->i(Ljava/lang/Object;)V

    invoke-static {p2}, Lcom/h/q/IOUtils;->toBufferedOutputStream(Ljava/io/OutputStream;)Ljava/io/BufferedOutputStream;

    move-result-object v0

    invoke-virtual {p1, v0}, Lcom/h/r/BasicRequest;->onWriteRequestBody(Ljava/io/OutputStream;)V

    invoke-static {v0}, Lcom/h/q/IOUtils;->closeQuietly(Ljava/io/Closeable;)V

    const-string/jumbo v0, "-------Send request data end-------"

    invoke-static {v0}, Lcom/h/r/Logger;->i(Ljava/lang/Object;)V

    return-void
.end method


# virtual methods
.method public getConnection(Lcom/h/r/BasicRequest;)Lcom/h/r/Connection;
    .registers 11
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lcom/h/r/BasicRequest",
            "<*>;)",
            "Lcom/h/r/Connection;"
        }
    .end annotation

    const/4 v1, 0x0

    const-string/jumbo v0, "--------------Request start--------------"

    invoke-static {v0}, Lcom/h/r/Logger;->d(Ljava/lang/Object;)V

    new-instance v3, Lcom/h/r/Headers;

    invoke-direct {v3}, Lcom/h/r/Headers;-><init>()V

    invoke-virtual {p1}, Lcom/h/r/BasicRequest;->url()Ljava/lang/String;

    move-result-object v5

    :try_start_10
    invoke-static {}, Lcom/h/q/NetUtils;->isNetworkAvailable()Z

    move-result v0

    if-nez v0, :cond_5e

    new-instance v0, Lcom/h/n/NetworkError;

    new-instance v2, Ljava/lang/StringBuilder;

    const-string/jumbo v4, "The network is not available, please check the network. The requested url is: "

    invoke-direct {v2, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    invoke-virtual {v2, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v2

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-direct {v0, v2}, Lcom/h/n/NetworkError;-><init>(Ljava/lang/String;)V

    throw v0
    :try_end_2c
    .catch Ljava/net/MalformedURLException; {:try_start_10 .. :try_end_2c} :catch_2c
    .catch Ljava/net/UnknownHostException; {:try_start_10 .. :try_end_2c} :catch_cf
    .catch Ljava/net/SocketTimeoutException; {:try_start_10 .. :try_end_2c} :catch_f7
    .catch Ljava/lang/Exception; {:try_start_10 .. :try_end_2c} :catch_11f
    .catchall {:try_start_10 .. :try_end_2c} :catchall_12c

    :catch_2c
    move-exception v0

    move-object v0, v1

    move-object v4, v1

    move-object v2, v1

    :goto_30
    :try_start_30
    new-instance v1, Lcom/h/n/URLError;

    new-instance v6, Ljava/lang/StringBuilder;

    const-string/jumbo v7, "The url is malformed: "

    invoke-direct {v6, v7}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    invoke-virtual {v6, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v5

    const-string/jumbo v6, "."

    invoke-virtual {v5, v6}, 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-direct {v1, v5}, Lcom/h/n/URLError;-><init>(Ljava/lang/String;)V
    :try_end_4c
    .catchall {:try_start_30 .. :try_end_4c} :catchall_136

    invoke-static {v1}, Lcom/sdk/orion/utils/OrionSwitchUtil;->isNeedSwich(Ljava/lang/Throwable;)Z

    invoke-static {v1}, Lcom/h/r/Logger;->e(Ljava/lang/Throwable;)V

    :cond_52
    :goto_52
    const-string/jumbo v4, "--------------Request finish--------------"

    invoke-static {v4}, Lcom/h/r/Logger;->d(Ljava/lang/Object;)V

    new-instance v4, Lcom/h/r/Connection;

    invoke-direct {v4, v0, v3, v2, v1}, Lcom/h/r/Connection;-><init>(Lcom/h/r/Network;Lcom/h/r/Headers;Ljava/io/InputStream;Ljava/lang/Exception;)V

    return-object v4

    :cond_5e
    :try_start_5e
    invoke-direct {p0, p1}, Lcom/h/r/HttpConnection;->createConnectionAndWriteData(Lcom/h/r/BasicRequest;)Lcom/h/r/Network;
    :try_end_61
    .catch Ljava/net/MalformedURLException; {:try_start_5e .. :try_end_61} :catch_2c
    .catch Ljava/net/UnknownHostException; {:try_start_5e .. :try_end_61} :catch_cf
    .catch Ljava/net/SocketTimeoutException; {:try_start_5e .. :try_end_61} :catch_f7
    .catch Ljava/lang/Exception; {:try_start_5e .. :try_end_61} :catch_11f
    .catchall {:try_start_5e .. :try_end_61} :catchall_12c

    move-result-object v0

    :try_start_62
    const-string/jumbo v2, "-------Response start-------"

    invoke-static {v2}, Lcom/h/r/Logger;->d(Ljava/lang/Object;)V

    invoke-interface {v0}, Lcom/h/r/Network;->getResponseCode()I

    move-result v2

    new-instance v4, Ljava/net/URI;

    invoke-virtual {p1}, Lcom/h/r/BasicRequest;->url()Ljava/lang/String;

    move-result-object v6

    invoke-direct {v4, v6}, Ljava/net/URI;-><init>(Ljava/lang/String;)V

    invoke-interface {v0}, Lcom/h/r/Network;->getResponseHeaders()Ljava/util/Map;

    move-result-object v6

    invoke-direct {p0, v4, v2, v6}, Lcom/h/r/HttpConnection;->parseResponseHeaders(Ljava/net/URI;ILjava/util/Map;)Lcom/h/r/Headers;

    move-result-object v3

    const/16 v4, 0x12d

    if-eq v2, v4, :cond_8d

    const/16 v4, 0x12e

    if-eq v2, v4, :cond_8d

    const/16 v4, 0x12f

    if-eq v2, v4, :cond_8d

    const/16 v4, 0x133

    if-ne v2, v4, :cond_ac

    :cond_8d
    invoke-direct {p0, p1, v3}, Lcom/h/r/HttpConnection;->handleRedirect(Lcom/h/r/BasicRequest;Lcom/h/r/Headers;)Lcom/h/r/Connection;

    move-result-object v4

    invoke-virtual {v4}, Lcom/h/r/Connection;->responseHeaders()Lcom/h/r/Headers;

    move-result-object v3

    invoke-virtual {v4}, Lcom/h/r/Connection;->serverStream()Ljava/io/InputStream;
    :try_end_98
    .catch Ljava/net/MalformedURLException; {:try_start_62 .. :try_end_98} :catch_ca
    .catch Ljava/net/UnknownHostException; {:try_start_62 .. :try_end_98} :catch_14a
    .catch Ljava/net/SocketTimeoutException; {:try_start_62 .. :try_end_98} :catch_140
    .catch Ljava/lang/Exception; {:try_start_62 .. :try_end_98} :catch_139
    .catchall {:try_start_62 .. :try_end_98} :catchall_12c

    move-result-object v2

    :try_start_99
    invoke-virtual {v4}, Lcom/h/r/Connection;->exception()Ljava/lang/Exception;
    :try_end_9c
    .catch Ljava/net/MalformedURLException; {:try_start_99 .. :try_end_9c} :catch_154
    .catch Ljava/net/UnknownHostException; {:try_start_99 .. :try_end_9c} :catch_14e
    .catch Ljava/net/SocketTimeoutException; {:try_start_99 .. :try_end_9c} :catch_144
    .catch Ljava/lang/Exception; {:try_start_99 .. :try_end_9c} :catch_13e
    .catchall {:try_start_99 .. :try_end_9c} :catchall_12c

    move-result-object v1

    :goto_9d
    :try_start_9d
    const-string/jumbo v4, "-------Response end-------"

    invoke-static {v4}, Lcom/h/r/Logger;->d(Ljava/lang/Object;)V
    :try_end_a3
    .catch Ljava/net/MalformedURLException; {:try_start_9d .. :try_end_a3} :catch_158
    .catch Ljava/net/UnknownHostException; {:try_start_9d .. :try_end_a3} :catch_151
    .catch Ljava/net/SocketTimeoutException; {:try_start_9d .. :try_end_a3} :catch_147
    .catch Ljava/lang/Exception; {:try_start_9d .. :try_end_a3} :catch_13e
    .catchall {:try_start_9d .. :try_end_a3} :catchall_12c

    if-eqz v1, :cond_52

    invoke-static {v1}, Lcom/sdk/orion/utils/OrionSwitchUtil;->isNeedSwich(Ljava/lang/Throwable;)Z

    invoke-static {v1}, Lcom/h/r/Logger;->e(Ljava/lang/Throwable;)V

    goto :goto_52

    :cond_ac
    :try_start_ac
    invoke-virtual {p1}, Lcom/h/r/BasicRequest;->getRequestMethod()Lcom/h/r/RequestMethod;

    move-result-object v4

    invoke-static {v4, v2}, Lcom/h/r/HttpConnection;->hasResponseBody(Lcom/h/r/RequestMethod;I)Z

    move-result v4

    if-eqz v4, :cond_bb

    invoke-interface {v0, v2, v3}, Lcom/h/r/Network;->getServerStream(ILcom/h/r/Headers;)Ljava/io/InputStream;

    move-result-object v2

    goto :goto_9d

    :cond_bb
    invoke-static {v2}, Lcom/sdk/orion/utils/OrionSwitchUtil;->isSuccessFul(I)Z

    move-result v2

    if-nez v2, :cond_15c

    new-instance v2, Ljava/net/ConnectException;

    const-string/jumbo v4, " connect exception"

    invoke-direct {v2, v4}, Ljava/net/ConnectException;-><init>(Ljava/lang/String;)V

    throw v2
    :try_end_ca
    .catch Ljava/net/MalformedURLException; {:try_start_ac .. :try_end_ca} :catch_ca
    .catch Ljava/net/UnknownHostException; {:try_start_ac .. :try_end_ca} :catch_14a
    .catch Ljava/net/SocketTimeoutException; {:try_start_ac .. :try_end_ca} :catch_140
    .catch Ljava/lang/Exception; {:try_start_ac .. :try_end_ca} :catch_139
    .catchall {:try_start_ac .. :try_end_ca} :catchall_12c

    :catch_ca
    move-exception v2

    move-object v4, v1

    move-object v2, v1

    goto/16 :goto_30

    :catch_cf
    move-exception v0

    move-object v0, v1

    move-object v4, v1

    move-object v2, v1

    :goto_d3
    :try_start_d3
    new-instance v1, Lcom/h/n/UnKnownHostError;

    new-instance v6, Ljava/lang/StringBuilder;

    const-string/jumbo v7, "Hostname can not be resolved: "

    invoke-direct {v6, v7}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    invoke-virtual {v6, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v5

    const-string/jumbo v6, "."

    invoke-virtual {v5, v6}, 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-direct {v1, v5}, Lcom/h/n/UnKnownHostError;-><init>(Ljava/lang/String;)V
    :try_end_ef
    .catchall {:try_start_d3 .. :try_end_ef} :catchall_136

    invoke-static {v1}, Lcom/sdk/orion/utils/OrionSwitchUtil;->isNeedSwich(Ljava/lang/Throwable;)Z

    invoke-static {v1}, Lcom/h/r/Logger;->e(Ljava/lang/Throwable;)V

    goto/16 :goto_52

    :catch_f7
    move-exception v0

    move-object v0, v1

    move-object v4, v1

    move-object v2, v1

    :goto_fb
    :try_start_fb
    new-instance v1, Lcom/h/n/TimeoutError;

    new-instance v6, Ljava/lang/StringBuilder;

    const-string/jumbo v7, "Request time out: "

    invoke-direct {v6, v7}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    invoke-virtual {v6, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v5

    const-string/jumbo v6, "."

    invoke-virtual {v5, v6}, 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-direct {v1, v5}, Lcom/h/n/TimeoutError;-><init>(Ljava/lang/String;)V
    :try_end_117
    .catchall {:try_start_fb .. :try_end_117} :catchall_136

    invoke-static {v1}, Lcom/sdk/orion/utils/OrionSwitchUtil;->isNeedSwich(Ljava/lang/Throwable;)Z

    invoke-static {v1}, Lcom/h/r/Logger;->e(Ljava/lang/Throwable;)V

    goto/16 :goto_52

    :catch_11f
    move-exception v0

    move-object v2, v1

    move-object v8, v1

    move-object v1, v0

    move-object v0, v8

    :goto_124
    invoke-static {v1}, Lcom/sdk/orion/utils/OrionSwitchUtil;->isNeedSwich(Ljava/lang/Throwable;)Z

    invoke-static {v1}, Lcom/h/r/Logger;->e(Ljava/lang/Throwable;)V

    goto/16 :goto_52

    :catchall_12c
    move-exception v0

    :goto_12d
    if-eqz v1, :cond_135

    invoke-static {v1}, Lcom/sdk/orion/utils/OrionSwitchUtil;->isNeedSwich(Ljava/lang/Throwable;)Z

    invoke-static {v1}, Lcom/h/r/Logger;->e(Ljava/lang/Throwable;)V

    :cond_135
    throw v0

    :catchall_136
    move-exception v0

    move-object v1, v4

    goto :goto_12d

    :catch_139
    move-exception v2

    move-object v8, v2

    move-object v2, v1

    move-object v1, v8

    goto :goto_124

    :catch_13e
    move-exception v1

    goto :goto_124

    :catch_140
    move-exception v2

    move-object v4, v1

    move-object v2, v1

    goto :goto_fb

    :catch_144
    move-exception v4

    move-object v4, v1

    goto :goto_fb

    :catch_147
    move-exception v4

    move-object v4, v1

    goto :goto_fb

    :catch_14a
    move-exception v2

    move-object v4, v1

    move-object v2, v1

    goto :goto_d3

    :catch_14e
    move-exception v4

    move-object v4, v1

    goto :goto_d3

    :catch_151
    move-exception v4

    move-object v4, v1

    goto :goto_d3

    :catch_154
    move-exception v4

    move-object v4, v1

    goto/16 :goto_30

    :catch_158
    move-exception v4

    move-object v4, v1

    goto/16 :goto_30

    :cond_15c
    move-object v2, v1

    goto/16 :goto_9d
.end method