HttpService.smali
.class public Lorg/web3j/protocol/http/HttpService;
.super Lorg/web3j/protocol/Service;
.source "HttpService.java"
# static fields
.field public static final DEFAULT_URL:Ljava/lang/String; = "http://localhost:8545/"
.field public static final JSON_MEDIA_TYPE:Lokhttp3/ad;
.field private static final log:Lorg/slf4j/Logger;
# instance fields
.field private headers:Ljava/util/HashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/HashMap",
"<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
.field private httpClient:Lokhttp3/ah;
.field private final includeRawResponse:Z
.field private final url:Ljava/lang/String;
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 30
const-string v0, "application/json; charset=utf-8"
invoke-static {v0}, Lokhttp3/ad;->hI(Ljava/lang/String;)Lokhttp3/ad;
move-result-object v0
sput-object v0, Lorg/web3j/protocol/http/HttpService;->JSON_MEDIA_TYPE:Lokhttp3/ad;
.line 35
const-class v0, Lorg/web3j/protocol/http/HttpService;
invoke-static {v0}, Lorg/slf4j/LoggerFactory;->getLogger(Ljava/lang/Class;)Lorg/slf4j/Logger;
move-result-object v0
sput-object v0, Lorg/web3j/protocol/http/HttpService;->log:Lorg/slf4j/Logger;
return-void
.end method
.method public constructor <init>()V
.registers 2
.prologue
.line 77
const-string v0, "http://localhost:8545/"
invoke-direct {p0, v0}, Lorg/web3j/protocol/http/HttpService;-><init>(Ljava/lang/String;)V
.line 78
return-void
.end method
.method public constructor <init>(Ljava/lang/String;)V
.registers 3
.prologue
.line 61
invoke-static {}, Lorg/web3j/protocol/http/HttpService;->createOkHttpClient()Lokhttp3/ah;
move-result-object v0
invoke-direct {p0, p1, v0}, Lorg/web3j/protocol/http/HttpService;-><init>(Ljava/lang/String;Lokhttp3/ah;)V
.line 62
return-void
.end method
.method private constructor <init>(Ljava/lang/String;Lokhttp3/ah;)V
.registers 4
.prologue
.line 57
const/4 v0, 0x0
invoke-direct {p0, p1, p2, v0}, Lorg/web3j/protocol/http/HttpService;-><init>(Ljava/lang/String;Lokhttp3/ah;Z)V
.line 58
return-void
.end method
.method public constructor <init>(Ljava/lang/String;Lokhttp3/ah;Z)V
.registers 5
.prologue
.line 46
invoke-direct {p0, p3}, Lorg/web3j/protocol/Service;-><init>(Z)V
.line 43
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
iput-object v0, p0, Lorg/web3j/protocol/http/HttpService;->headers:Ljava/util/HashMap;
.line 47
iput-object p1, p0, Lorg/web3j/protocol/http/HttpService;->url:Ljava/lang/String;
.line 48
iput-object p2, p0, Lorg/web3j/protocol/http/HttpService;->httpClient:Lokhttp3/ah;
.line 49
iput-boolean p3, p0, Lorg/web3j/protocol/http/HttpService;->includeRawResponse:Z
.line 50
return-void
.end method
.method public constructor <init>(Ljava/lang/String;Z)V
.registers 4
.prologue
.line 65
invoke-static {}, Lorg/web3j/protocol/http/HttpService;->createOkHttpClient()Lokhttp3/ah;
move-result-object v0
invoke-direct {p0, p1, v0, p2}, Lorg/web3j/protocol/http/HttpService;-><init>(Ljava/lang/String;Lokhttp3/ah;Z)V
.line 66
return-void
.end method
.method public constructor <init>(Lokhttp3/ah;)V
.registers 3
.prologue
.line 69
const-string v0, "http://localhost:8545/"
invoke-direct {p0, v0, p1}, Lorg/web3j/protocol/http/HttpService;-><init>(Ljava/lang/String;Lokhttp3/ah;)V
.line 70
return-void
.end method
.method public constructor <init>(Lokhttp3/ah;Z)V
.registers 4
.prologue
.line 53
const-string v0, "http://localhost:8545/"
invoke-direct {p0, v0, p1, p2}, Lorg/web3j/protocol/http/HttpService;-><init>(Ljava/lang/String;Lokhttp3/ah;Z)V
.line 54
return-void
.end method
.method public constructor <init>(Z)V
.registers 3
.prologue
.line 73
const-string v0, "http://localhost:8545/"
invoke-direct {p0, v0, p1}, Lorg/web3j/protocol/http/HttpService;-><init>(Ljava/lang/String;Z)V
.line 74
return-void
.end method
.method static synthetic access$000()Lorg/slf4j/Logger;
.registers 1
.prologue
.line 28
sget-object v0, Lorg/web3j/protocol/http/HttpService;->log:Lorg/slf4j/Logger;
return-object v0
.end method
.method private buildHeaders()Lokhttp3/z;
.registers 9
.prologue
const/4 v7, -0x1
const/4 v3, 0x0
.line 156
iget-object v0, p0, Lorg/web3j/protocol/http/HttpService;->headers:Ljava/util/HashMap;
.line 4235
if-nez v0, :cond_e
new-instance v0, Ljava/lang/NullPointerException;
const-string v1, "headers == null"
invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
throw v0
.line 4238
:cond_e
invoke-interface {v0}, Ljava/util/Map;->size()I
move-result v1
shl-int/lit8 v1, v1, 0x1
new-array v4, v1, [Ljava/lang/String;
.line 4240
invoke-interface {v0}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object v0
invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v5
move v2, v3
:goto_1f
invoke-interface {v5}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_8e
invoke-interface {v5}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/Map$Entry;
.line 4241
invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v1
if-eqz v1, :cond_37
invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v1
if-nez v1, :cond_3f
.line 4242
:cond_37
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "Headers cannot be null"
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.line 4244
:cond_3f
invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/String;
invoke-virtual {v1}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v1
.line 4245
invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
invoke-virtual {v0}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v0
.line 4246
invoke-virtual {v1}, Ljava/lang/String;->length()I
move-result v6
if-eqz v6, :cond_65
invoke-virtual {v1, v3}, Ljava/lang/String;->indexOf(I)I
move-result v6
if-ne v6, v7, :cond_65
invoke-virtual {v0, v3}, Ljava/lang/String;->indexOf(I)I
move-result v6
if-eq v6, v7, :cond_84
.line 4247
:cond_65
new-instance v2, Ljava/lang/IllegalArgumentException;
new-instance v3, Ljava/lang/StringBuilder;
const-string v4, "Unexpected header: "
invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v3, ": "
invoke-virtual {v1, v3}, 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 v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v2, v0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v2
.line 4249
:cond_84
aput-object v1, v4, v2
.line 4250
add-int/lit8 v1, v2, 0x1
aput-object v0, v4, v1
.line 4251
add-int/lit8 v0, v2, 0x2
move v2, v0
.line 4252
goto :goto_1f
.line 4254
:cond_8e
new-instance v0, Lokhttp3/z;
invoke-direct {v0, v4}, Lokhttp3/z;-><init>([Ljava/lang/String;)V
.line 156
return-object v0
.end method
.method private buildInputStream(Lokhttp3/aq;)Ljava/io/InputStream;
.registers 8
.prologue
.line 127
invoke-virtual {p1}, Lokhttp3/aq;->byteStream()Ljava/io/InputStream;
move-result-object v1
.line 129
iget-boolean v0, p0, Lorg/web3j/protocol/http/HttpService;->includeRawResponse:Z
if-eqz v0, :cond_44
.line 133
invoke-virtual {p1}, Lokhttp3/aq;->source()Lokio/f;
move-result-object v0
.line 134
const-wide v2, 0x7fffffffffffffffL
invoke-interface {v0, v2, v3}, Lokio/f;->R(J)Z
.line 135
invoke-interface {v0}, Lokio/f;->Sg()Lokio/d;
move-result-object v0
.line 4067
iget-wide v2, v0, Lokio/d;->size:J
.line 138
const-wide/32 v4, 0x7fffffff
cmp-long v0, v2, v4
if-lez v0, :cond_36
.line 139
new-instance v0, Ljava/lang/UnsupportedOperationException;
new-instance v1, Ljava/lang/StringBuilder;
const-string v4, "Non-integer input buffer size specified: "
invoke-direct {v1, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v1, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw v0
.line 143
:cond_36
long-to-int v2, v2
.line 144
new-instance v0, Ljava/io/BufferedInputStream;
invoke-direct {v0, v1, v2}, Ljava/io/BufferedInputStream;-><init>(Ljava/io/InputStream;I)V
.line 147
invoke-virtual {v1}, Ljava/io/InputStream;->available()I
move-result v1
invoke-virtual {v0, v1}, Ljava/io/BufferedInputStream;->mark(I)V
.line 151
:goto_43
return-object v0
:cond_44
move-object v0, v1
goto :goto_43
.end method
.method private static configureLogging(Lokhttp3/ai;)V
.registers 3
.prologue
.line 87
sget-object v0, Lorg/web3j/protocol/http/HttpService;->log:Lorg/slf4j/Logger;
invoke-interface {v0}, Lorg/slf4j/Logger;->isDebugEnabled()Z
move-result v0
if-eqz v0, :cond_1a
.line 88
new-instance v0, Lokhttp3/logging/HttpLoggingInterceptor;
new-instance v1, Lorg/web3j/protocol/http/HttpService$1;
invoke-direct {v1}, Lorg/web3j/protocol/http/HttpService$1;-><init>()V
invoke-direct {v0, v1}, Lokhttp3/logging/HttpLoggingInterceptor;-><init>(Lokhttp3/logging/a;)V
.line 95
sget-object v1, Lokhttp3/logging/HttpLoggingInterceptor$Level;->BODY:Lokhttp3/logging/HttpLoggingInterceptor$Level;
invoke-virtual {v0, v1}, Lokhttp3/logging/HttpLoggingInterceptor;->a(Lokhttp3/logging/HttpLoggingInterceptor$Level;)Lokhttp3/logging/HttpLoggingInterceptor;
.line 96
invoke-virtual {p0, v0}, Lokhttp3/ai;->a(Lokhttp3/ab;)Lokhttp3/ai;
.line 98
:cond_1a
return-void
.end method
.method private static createOkHttpClient()Lokhttp3/ah;
.registers 1
.prologue
.line 81
new-instance v0, Lokhttp3/ai;
invoke-direct {v0}, Lokhttp3/ai;-><init>()V
.line 82
invoke-static {v0}, Lorg/web3j/protocol/http/HttpService;->configureLogging(Lokhttp3/ai;)V
.line 83
invoke-virtual {v0}, Lokhttp3/ai;->Rq()Lokhttp3/ah;
move-result-object v0
return-object v0
.end method
# virtual methods
.method public addHeader(Ljava/lang/String;Ljava/lang/String;)V
.registers 4
.prologue
.line 160
iget-object v0, p0, Lorg/web3j/protocol/http/HttpService;->headers:Ljava/util/HashMap;
invoke-virtual {v0, p1, p2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 161
return-void
.end method
.method public addHeaders(Ljava/util/Map;)V
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;)V"
}
.end annotation
.prologue
.line 164
iget-object v0, p0, Lorg/web3j/protocol/http/HttpService;->headers:Ljava/util/HashMap;
invoke-virtual {v0, p1}, Ljava/util/HashMap;->putAll(Ljava/util/Map;)V
.line 165
return-void
.end method
.method public getHeaders()Ljava/util/HashMap;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/HashMap",
"<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;"
}
.end annotation
.prologue
.line 168
iget-object v0, p0, Lorg/web3j/protocol/http/HttpService;->headers:Ljava/util/HashMap;
return-object v0
.end method
.method protected performIO(Ljava/lang/String;)Ljava/io/InputStream;
.registers 6
.prologue
.line 103
sget-object v0, Lorg/web3j/protocol/http/HttpService;->JSON_MEDIA_TYPE:Lokhttp3/ad;
invoke-static {v0, p1}, Lokhttp3/an;->create(Lokhttp3/ad;Ljava/lang/String;)Lokhttp3/an;
move-result-object v0
.line 104
invoke-direct {p0}, Lorg/web3j/protocol/http/HttpService;->buildHeaders()Lokhttp3/z;
move-result-object v1
.line 106
new-instance v2, Lokhttp3/am;
invoke-direct {v2}, Lokhttp3/am;-><init>()V
iget-object v3, p0, Lorg/web3j/protocol/http/HttpService;->url:Ljava/lang/String;
invoke-virtual {v2, v3}, Lokhttp3/am;->hJ(Ljava/lang/String;)Lokhttp3/am;
move-result-object v2
invoke-virtual {v2, v1}, Lokhttp3/am;->b(Lokhttp3/z;)Lokhttp3/am;
move-result-object v1
.line 1213
const-string v2, "POST"
invoke-virtual {v1, v2, v0}, Lokhttp3/am;->a(Ljava/lang/String;Lokhttp3/an;)Lokhttp3/am;
move-result-object v0
.line 106
invoke-virtual {v0}, Lokhttp3/am;->build()Lokhttp3/al;
move-result-object v0
.line 112
iget-object v1, p0, Lorg/web3j/protocol/http/HttpService;->httpClient:Lokhttp3/ah;
.line 1430
const/4 v2, 0x0
invoke-static {v1, v0, v2}, Lokhttp3/aj;->a(Lokhttp3/ah;Lokhttp3/al;Z)Lokhttp3/aj;
move-result-object v0
.line 112
invoke-interface {v0}, Lokhttp3/f;->QA()Lokhttp3/ao;
move-result-object v0
.line 113
invoke-virtual {v0}, Lokhttp3/ao;->isSuccessful()Z
move-result v1
if-eqz v1, :cond_3f
.line 2177
iget-object v0, v0, Lokhttp3/ao;->bWL:Lokhttp3/aq;
.line 115
if-eqz v0, :cond_3d
.line 116
invoke-direct {p0, v0}, Lorg/web3j/protocol/http/HttpService;->buildInputStream(Lokhttp3/aq;)Ljava/io/InputStream;
move-result-object v0
.line 118
:goto_3c
return-object v0
:cond_3d
const/4 v0, 0x0
goto :goto_3c
.line 121
:cond_3f
new-instance v1, Lorg/web3j/protocol/exceptions/ClientConnectionException;
new-instance v2, Ljava/lang/StringBuilder;
const-string v3, "Invalid response received: "
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 3177
iget-object v0, v0, Lokhttp3/ao;->bWL:Lokhttp3/aq;
.line 121
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v1, v0}, Lorg/web3j/protocol/exceptions/ClientConnectionException;-><init>(Ljava/lang/String;)V
throw v1
.end method