HttpsClient.smali
.class public Lcom/quickbird/sdk/internal/HttpsClient;
.super Ljava/lang/Object;
.source "HttpsClient.java"
# static fields
.field public static final HTTP_AGENT:Ljava/lang/String; = "QB_SDK"
.field public static final HTTP_CHARSET:Ljava/lang/String; = "UTF-8"
.field public static final HTTP_JSON:Ljava/lang/String; = "application/json"
.field public static HttpRetry:I
.field public static HttpTimeout:I
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 47
const/16 v0, 0x2710
sput v0, Lcom/quickbird/sdk/internal/HttpsClient;->HttpTimeout:I
.line 49
const/4 v0, 0x3
sput v0, Lcom/quickbird/sdk/internal/HttpsClient;->HttpRetry:I
return-void
.end method
.method public constructor <init>()V
.registers 1
.prologue
.line 40
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private static newHttpsClient(Landroid/content/Context;)Lorg/apache/http/client/HttpClient;
.registers 8
.prologue
.line 98
:try_start_0
const-string v0, "X.509"
invoke-static {v0}, Ljava/security/cert/CertificateFactory;->getInstance(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
move-result-object v0
.line 99
invoke-virtual {p0}, Landroid/content/Context;->getAssets()Landroid/content/res/AssetManager;
move-result-object v1
const-string v2, "qbcert.der"
invoke-virtual {v1, v2}, Landroid/content/res/AssetManager;->open(Ljava/lang/String;)Ljava/io/InputStream;
:try_end_f
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_f} :catch_78
move-result-object v1
.line 102
:try_start_10
invoke-virtual {v0, v1}, Ljava/security/cert/CertificateFactory;->generateCertificate(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
:try_end_13
.catchall {:try_start_10 .. :try_end_13} :catchall_73
move-result-object v0
.line 104
:try_start_14
invoke-virtual {v1}, Ljava/io/InputStream;->close()V
.line 108
invoke-static {}, Ljava/security/KeyStore;->getDefaultType()Ljava/lang/String;
move-result-object v1
.line 109
invoke-static {v1}, Ljava/security/KeyStore;->getInstance(Ljava/lang/String;)Ljava/security/KeyStore;
move-result-object v1
.line 110
const/4 v2, 0x0
const/4 v3, 0x0
invoke-virtual {v1, v2, v3}, Ljava/security/KeyStore;->load(Ljava/io/InputStream;[C)V
.line 111
const-string v2, "ca"
invoke-virtual {v1, v2, v0}, Ljava/security/KeyStore;->setCertificateEntry(Ljava/lang/String;Ljava/security/cert/Certificate;)V
.line 112
new-instance v0, Lorg/apache/http/conn/ssl/SSLSocketFactory;
invoke-direct {v0, v1}, Lorg/apache/http/conn/ssl/SSLSocketFactory;-><init>(Ljava/security/KeyStore;)V
.line 114
new-instance v1, Lorg/apache/http/params/BasicHttpParams;
invoke-direct {v1}, Lorg/apache/http/params/BasicHttpParams;-><init>()V
.line 115
sget-object v2, Lorg/apache/http/HttpVersion;->HTTP_1_1:Lorg/apache/http/HttpVersion;
invoke-static {v1, v2}, Lorg/apache/http/params/HttpProtocolParams;->setVersion(Lorg/apache/http/params/HttpParams;Lorg/apache/http/ProtocolVersion;)V
.line 116
const-string v2, "UTF-8"
invoke-static {v1, v2}, Lorg/apache/http/params/HttpProtocolParams;->setContentCharset(Lorg/apache/http/params/HttpParams;Ljava/lang/String;)V
.line 117
sget v2, Lcom/quickbird/sdk/internal/HttpsClient;->HttpTimeout:I
invoke-static {v1, v2}, Lorg/apache/http/params/HttpConnectionParams;->setConnectionTimeout(Lorg/apache/http/params/HttpParams;I)V
.line 118
sget v2, Lcom/quickbird/sdk/internal/HttpsClient;->HttpTimeout:I
invoke-static {v1, v2}, Lorg/apache/http/params/HttpConnectionParams;->setSoTimeout(Lorg/apache/http/params/HttpParams;I)V
.line 120
new-instance v2, Lorg/apache/http/conn/scheme/SchemeRegistry;
invoke-direct {v2}, Lorg/apache/http/conn/scheme/SchemeRegistry;-><init>()V
.line 121
new-instance v3, Lorg/apache/http/conn/scheme/Scheme;
const-string v4, "http"
invoke-static {}, Lorg/apache/http/conn/scheme/PlainSocketFactory;->getSocketFactory()Lorg/apache/http/conn/scheme/PlainSocketFactory;
move-result-object v5
const/16 v6, 0x50
invoke-direct {v3, v4, v5, v6}, Lorg/apache/http/conn/scheme/Scheme;-><init>(Ljava/lang/String;Lorg/apache/http/conn/scheme/SocketFactory;I)V
invoke-virtual {v2, v3}, Lorg/apache/http/conn/scheme/SchemeRegistry;->register(Lorg/apache/http/conn/scheme/Scheme;)Lorg/apache/http/conn/scheme/Scheme;
.line 122
new-instance v3, Lorg/apache/http/conn/scheme/Scheme;
const-string v4, "https"
const/16 v5, 0x1bb
invoke-direct {v3, v4, v0, v5}, Lorg/apache/http/conn/scheme/Scheme;-><init>(Ljava/lang/String;Lorg/apache/http/conn/scheme/SocketFactory;I)V
invoke-virtual {v2, v3}, Lorg/apache/http/conn/scheme/SchemeRegistry;->register(Lorg/apache/http/conn/scheme/Scheme;)Lorg/apache/http/conn/scheme/Scheme;
.line 124
new-instance v3, Lorg/apache/http/impl/conn/tsccm/ThreadSafeClientConnManager;
invoke-direct {v3, v1, v2}, Lorg/apache/http/impl/conn/tsccm/ThreadSafeClientConnManager;-><init>(Lorg/apache/http/params/HttpParams;Lorg/apache/http/conn/scheme/SchemeRegistry;)V
.line 126
new-instance v0, Lorg/apache/http/impl/client/DefaultHttpClient;
invoke-direct {v0, v3, v1}, Lorg/apache/http/impl/client/DefaultHttpClient;-><init>(Lorg/apache/http/conn/ClientConnectionManager;Lorg/apache/http/params/HttpParams;)V
.line 128
:goto_72
return-object v0
.line 104
:catchall_73
move-exception v0
invoke-virtual {v1}, Ljava/io/InputStream;->close()V
throw v0
:try_end_78
.catch Ljava/lang/Exception; {:try_start_14 .. :try_end_78} :catch_78
.line 127
:catch_78
move-exception v0
.line 128
new-instance v0, Lorg/apache/http/impl/client/DefaultHttpClient;
invoke-direct {v0}, Lorg/apache/http/impl/client/DefaultHttpClient;-><init>()V
goto :goto_72
.end method
.method public static post(Landroid/content/Context;Ljava/lang/String;Lorg/json/JSONObject;)Ljava/lang/String;
.registers 7
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/net/URISyntaxException;,
Lorg/json/JSONException;,
Ljava/io/IOException;
}
.end annotation
.prologue
.line 54
if-eqz p2, :cond_22
.line 55
new-instance v0, Lorg/apache/http/entity/StringEntity;
invoke-virtual {p2}, Lorg/json/JSONObject;->toString()Ljava/lang/String;
move-result-object v1
const-string v2, "UTF-8"
invoke-direct {v0, v1, v2}, Lorg/apache/http/entity/StringEntity;-><init>(Ljava/lang/String;Ljava/lang/String;)V
.line 56
new-instance v1, Lorg/apache/http/message/BasicHeader;
const-string v2, "Content-Type"
const-string v3, "application/json"
invoke-direct {v1, v2, v3}, Lorg/apache/http/message/BasicHeader;-><init>(Ljava/lang/String;Ljava/lang/String;)V
invoke-virtual {v0, v1}, Lorg/apache/http/entity/StringEntity;->setContentEncoding(Lorg/apache/http/Header;)V
.line 57
invoke-static {p0, p1, v0}, Lcom/quickbird/sdk/internal/HttpsClient;->postEntity(Landroid/content/Context;Ljava/lang/String;Lorg/apache/http/HttpEntity;)Lorg/apache/http/HttpEntity;
move-result-object v0
invoke-static {v0}, Lorg/apache/http/util/EntityUtils;->toString(Lorg/apache/http/HttpEntity;)Ljava/lang/String;
move-result-object v0
.line 59
:goto_21
return-object v0
:cond_22
const/4 v0, 0x0
invoke-static {p0, p1, v0}, Lcom/quickbird/sdk/internal/HttpsClient;->postEntity(Landroid/content/Context;Ljava/lang/String;Lorg/apache/http/HttpEntity;)Lorg/apache/http/HttpEntity;
move-result-object v0
invoke-static {v0}, Lorg/apache/http/util/EntityUtils;->toString(Lorg/apache/http/HttpEntity;)Ljava/lang/String;
move-result-object v0
goto :goto_21
.end method
.method private static postEntity(Landroid/content/Context;Ljava/lang/String;Lorg/apache/http/HttpEntity;)Lorg/apache/http/HttpEntity;
.registers 10
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/net/URISyntaxException;,
Ljava/io/IOException;
}
.end annotation
.prologue
.line 66
new-instance v2, Lorg/apache/http/impl/client/DefaultHttpClient;
invoke-direct {v2}, Lorg/apache/http/impl/client/DefaultHttpClient;-><init>()V
.line 67
new-instance v3, Lorg/apache/http/client/methods/HttpPost;
new-instance v0, Ljava/net/URI;
invoke-direct {v0, p1}, Ljava/net/URI;-><init>(Ljava/lang/String;)V
invoke-direct {v3, v0}, Lorg/apache/http/client/methods/HttpPost;-><init>(Ljava/net/URI;)V
.line 68
const-string v0, "User-Agent"
const-string v1, "QB_SDK"
invoke-virtual {v3, v0, v1}, Lorg/apache/http/client/methods/HttpPost;->addHeader(Ljava/lang/String;Ljava/lang/String;)V
.line 69
const-string v0, "Content-Type"
const-string v1, "application/json"
invoke-virtual {v3, v0, v1}, Lorg/apache/http/client/methods/HttpPost;->addHeader(Ljava/lang/String;Ljava/lang/String;)V
.line 70
if-eqz p2, :cond_22
.line 71
invoke-virtual {v3, p2}, Lorg/apache/http/client/methods/HttpPost;->setEntity(Lorg/apache/http/HttpEntity;)V
.line 75
:cond_22
const/4 v0, 0x0
move v1, v0
.line 79
:cond_24
:try_start_24
invoke-interface {v2, v3}, Lorg/apache/http/client/HttpClient;->execute(Lorg/apache/http/client/methods/HttpUriRequest;)Lorg/apache/http/HttpResponse;
move-result-object v0
.line 80
invoke-interface {v0}, Lorg/apache/http/HttpResponse;->getEntity()Lorg/apache/http/HttpEntity;
:try_end_2b
.catch Ljava/io/IOException; {:try_start_24 .. :try_end_2b} :catch_2d
move-result-object v0
return-object v0
.line 81
:catch_2d
move-exception v0
.line 84
sget-boolean v4, Lcom/quickbird/sdk/QuickBird;->SDK_DEBUG:Z
if-eqz v4, :cond_5e
.line 85
const-string v4, "QbSdk"
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "IOException:"
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v0}, Ljava/io/IOException;->getMessage()Ljava/lang/String;
move-result-object v6
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
const-string v6, "(retry="
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v5
const-string 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-static {v4, v5}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I
.line 89
:cond_5e
add-int/lit8 v1, v1, 0x1
sget v4, Lcom/quickbird/sdk/internal/HttpsClient;->HttpRetry:I
if-lt v1, v4, :cond_24
.line 91
throw v0
.end method