Add Discord APKTool decompilation (Smali source for modding)

- Imported from https://github.com/supermegamestre/Project-Real-Resurrection-3
- APKTool decompilation (Smali bytecode) for modding and rebuilding APK
- Supports both 32-bit (armeabi-v7a) and 64-bit (arm64-v8a) architectures
- Includes full Smali source, resources, and native libraries
- Ready to rebuild APK after modifications with apktool b command
- Added comprehensive README-apktool.md with modding guide

This branch complements the JADX branches:
- Use JADX (main/discord-community) to UNDERSTAND code (readable Java)
- Use APKTool (this branch) to MODIFY and REBUILD APK (editable Smali)

Total: 44,417 files, 538.51 MB Smali source code
This commit is contained in:
2026-02-18 16:13:44 -08:00
parent c080f0d97f
commit f3960ee359
44288 changed files with 10998761 additions and 0 deletions

View File

@@ -0,0 +1,390 @@
.class public final Lokhttp3/internal/http/BridgeInterceptor;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lokhttp3/Interceptor;
# instance fields
.field public final cookieJar:Lokhttp3/CookieJar;
# direct methods
.method public constructor <init>(Lokhttp3/CookieJar;)V
.locals 0
.line 43
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lokhttp3/internal/http/BridgeInterceptor;->cookieJar:Lokhttp3/CookieJar;
return-void
.end method
# virtual methods
.method public final cookieHeader(Ljava/util/List;)Ljava/lang/String;
.locals 5
.line 118
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
.line 119
invoke-interface {p1}, Ljava/util/List;->size()I
move-result v1
const/4 v2, 0x0
:goto_0
if-ge v2, v1, :cond_1
if-lez v2, :cond_0
const-string v3, "; "
.line 121
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 123
:cond_0
invoke-interface {p1, v2}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v3
check-cast v3, Lokhttp3/Cookie;
.line 124
invoke-virtual {v3}, Lokhttp3/Cookie;->name()Ljava/lang/String;
move-result-object v4
invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const/16 v4, 0x3d
invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Lokhttp3/Cookie;->value()Ljava/lang/String;
move-result-object v3
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
add-int/lit8 v2, v2, 0x1
goto :goto_0
.line 126
:cond_1
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
return-object p1
.end method
.method public intercept(Lokhttp3/Interceptor$Chain;)Lokhttp3/Response;
.locals 10
.line 48
invoke-interface {p1}, Lokhttp3/Interceptor$Chain;->request()Lokhttp3/Request;
move-result-object v0
.line 49
invoke-virtual {v0}, Lokhttp3/Request;->newBuilder()Lokhttp3/Request$Builder;
move-result-object v1
.line 51
invoke-virtual {v0}, Lokhttp3/Request;->body()Lokhttp3/RequestBody;
move-result-object v2
const-wide/16 v3, -0x1
const-string v5, "Content-Type"
const-string v6, "Content-Length"
if-eqz v2, :cond_2
.line 53
invoke-virtual {v2}, Lokhttp3/RequestBody;->contentType()Lokhttp3/MediaType;
move-result-object v7
if-eqz v7, :cond_0
.line 55
invoke-virtual {v7}, Lokhttp3/MediaType;->toString()Ljava/lang/String;
move-result-object v7
invoke-virtual {v1, v5, v7}, Lokhttp3/Request$Builder;->header(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Request$Builder;
.line 58
:cond_0
invoke-virtual {v2}, Lokhttp3/RequestBody;->contentLength()J
move-result-wide v7
cmp-long v2, v7, v3
const-string v9, "Transfer-Encoding"
if-eqz v2, :cond_1
.line 60
invoke-static {v7, v8}, Ljava/lang/Long;->toString(J)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v6, v2}, Lokhttp3/Request$Builder;->header(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Request$Builder;
.line 61
invoke-virtual {v1, v9}, Lokhttp3/Request$Builder;->removeHeader(Ljava/lang/String;)Lokhttp3/Request$Builder;
goto :goto_0
:cond_1
const-string v2, "chunked"
.line 63
invoke-virtual {v1, v9, v2}, Lokhttp3/Request$Builder;->header(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Request$Builder;
.line 64
invoke-virtual {v1, v6}, Lokhttp3/Request$Builder;->removeHeader(Ljava/lang/String;)Lokhttp3/Request$Builder;
:cond_2
:goto_0
const-string v2, "Host"
.line 68
invoke-virtual {v0, v2}, Lokhttp3/Request;->header(Ljava/lang/String;)Ljava/lang/String;
move-result-object v7
const/4 v8, 0x0
if-nez v7, :cond_3
.line 69
invoke-virtual {v0}, Lokhttp3/Request;->url()Lokhttp3/HttpUrl;
move-result-object v7
invoke-static {v7, v8}, Lokhttp3/internal/Util;->hostHeader(Lokhttp3/HttpUrl;Z)Ljava/lang/String;
move-result-object v7
invoke-virtual {v1, v2, v7}, Lokhttp3/Request$Builder;->header(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Request$Builder;
:cond_3
const-string v2, "Connection"
.line 72
invoke-virtual {v0, v2}, Lokhttp3/Request;->header(Ljava/lang/String;)Ljava/lang/String;
move-result-object v7
if-nez v7, :cond_4
const-string v7, "Keep-Alive"
.line 73
invoke-virtual {v1, v2, v7}, Lokhttp3/Request$Builder;->header(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Request$Builder;
:cond_4
const-string v2, "Accept-Encoding"
.line 79
invoke-virtual {v0, v2}, Lokhttp3/Request;->header(Ljava/lang/String;)Ljava/lang/String;
move-result-object v7
const-string v9, "gzip"
if-nez v7, :cond_5
const-string v7, "Range"
invoke-virtual {v0, v7}, Lokhttp3/Request;->header(Ljava/lang/String;)Ljava/lang/String;
move-result-object v7
if-nez v7, :cond_5
.line 81
invoke-virtual {v1, v2, v9}, Lokhttp3/Request$Builder;->header(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Request$Builder;
const/4 v8, 0x1
:cond_5
iget-object v2, p0, Lokhttp3/internal/http/BridgeInterceptor;->cookieJar:Lokhttp3/CookieJar;
.line 84
invoke-virtual {v0}, Lokhttp3/Request;->url()Lokhttp3/HttpUrl;
move-result-object v7
invoke-interface {v2, v7}, Lokhttp3/CookieJar;->loadForRequest(Lokhttp3/HttpUrl;)Ljava/util/List;
move-result-object v2
.line 85
invoke-interface {v2}, Ljava/util/List;->isEmpty()Z
move-result v7
if-nez v7, :cond_6
const-string v7, "Cookie"
.line 86
invoke-virtual {p0, v2}, Lokhttp3/internal/http/BridgeInterceptor;->cookieHeader(Ljava/util/List;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v7, v2}, Lokhttp3/Request$Builder;->header(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Request$Builder;
:cond_6
const-string v2, "User-Agent"
.line 89
invoke-virtual {v0, v2}, Lokhttp3/Request;->header(Ljava/lang/String;)Ljava/lang/String;
move-result-object v7
if-nez v7, :cond_7
.line 90
invoke-static {}, Lokhttp3/internal/Version;->userAgent()Ljava/lang/String;
move-result-object v7
invoke-virtual {v1, v2, v7}, Lokhttp3/Request$Builder;->header(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Request$Builder;
.line 93
:cond_7
invoke-virtual {v1}, Lokhttp3/Request$Builder;->build()Lokhttp3/Request;
move-result-object v1
invoke-interface {p1, v1}, Lokhttp3/Interceptor$Chain;->proceed(Lokhttp3/Request;)Lokhttp3/Response;
move-result-object p1
iget-object v1, p0, Lokhttp3/internal/http/BridgeInterceptor;->cookieJar:Lokhttp3/CookieJar;
.line 95
invoke-virtual {v0}, Lokhttp3/Request;->url()Lokhttp3/HttpUrl;
move-result-object v2
invoke-virtual {p1}, Lokhttp3/Response;->headers()Lokhttp3/Headers;
move-result-object v7
invoke-static {v1, v2, v7}, Lokhttp3/internal/http/HttpHeaders;->receiveHeaders(Lokhttp3/CookieJar;Lokhttp3/HttpUrl;Lokhttp3/Headers;)V
.line 97
invoke-virtual {p1}, Lokhttp3/Response;->newBuilder()Lokhttp3/Response$Builder;
move-result-object v1
.line 98
invoke-virtual {v1, v0}, Lokhttp3/Response$Builder;->request(Lokhttp3/Request;)Lokhttp3/Response$Builder;
move-result-object v0
if-eqz v8, :cond_8
const-string v1, "Content-Encoding"
.line 101
invoke-virtual {p1, v1}, Lokhttp3/Response;->header(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v9, v2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_8
.line 102
invoke-static {p1}, Lokhttp3/internal/http/HttpHeaders;->hasBody(Lokhttp3/Response;)Z
move-result v2
if-eqz v2, :cond_8
.line 103
new-instance v2, Lokio/GzipSource;
invoke-virtual {p1}, Lokhttp3/Response;->body()Lokhttp3/ResponseBody;
move-result-object v7
invoke-virtual {v7}, Lokhttp3/ResponseBody;->source()Lokio/BufferedSource;
move-result-object v7
invoke-direct {v2, v7}, Lokio/GzipSource;-><init>(Lokio/Source;)V
.line 104
invoke-virtual {p1}, Lokhttp3/Response;->headers()Lokhttp3/Headers;
move-result-object v7
invoke-virtual {v7}, Lokhttp3/Headers;->newBuilder()Lokhttp3/Headers$Builder;
move-result-object v7
.line 105
invoke-virtual {v7, v1}, Lokhttp3/Headers$Builder;->removeAll(Ljava/lang/String;)Lokhttp3/Headers$Builder;
move-result-object v1
.line 106
invoke-virtual {v1, v6}, Lokhttp3/Headers$Builder;->removeAll(Ljava/lang/String;)Lokhttp3/Headers$Builder;
move-result-object v1
.line 107
invoke-virtual {v1}, Lokhttp3/Headers$Builder;->build()Lokhttp3/Headers;
move-result-object v1
.line 108
invoke-virtual {v0, v1}, Lokhttp3/Response$Builder;->headers(Lokhttp3/Headers;)Lokhttp3/Response$Builder;
.line 109
invoke-virtual {p1, v5}, Lokhttp3/Response;->header(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
.line 110
new-instance v1, Lokhttp3/internal/http/RealResponseBody;
invoke-static {v2}, Lokio/Okio;->buffer(Lokio/Source;)Lokio/BufferedSource;
move-result-object v2
invoke-direct {v1, p1, v3, v4, v2}, Lokhttp3/internal/http/RealResponseBody;-><init>(Ljava/lang/String;JLokio/BufferedSource;)V
invoke-virtual {v0, v1}, Lokhttp3/Response$Builder;->body(Lokhttp3/ResponseBody;)Lokhttp3/Response$Builder;
.line 113
:cond_8
invoke-virtual {v0}, Lokhttp3/Response$Builder;->build()Lokhttp3/Response;
move-result-object p1
return-object p1
.end method

View File

@@ -0,0 +1,473 @@
.class public final Lokhttp3/internal/http/CallServerInterceptor;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lokhttp3/Interceptor;
# instance fields
.field public final forWebSocket:Z
# direct methods
.method public constructor <init>(Z)V
.locals 0
.line 32
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-boolean p1, p0, Lokhttp3/internal/http/CallServerInterceptor;->forWebSocket:Z
return-void
.end method
# virtual methods
.method public intercept(Lokhttp3/Interceptor$Chain;)Lokhttp3/Response;
.locals 8
.line 37
check-cast p1, Lokhttp3/internal/http/RealInterceptorChain;
.line 38
invoke-virtual {p1}, Lokhttp3/internal/http/RealInterceptorChain;->exchange()Lokhttp3/internal/connection/Exchange;
move-result-object v0
.line 39
invoke-virtual {p1}, Lokhttp3/internal/http/RealInterceptorChain;->request()Lokhttp3/Request;
move-result-object p1
.line 41
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v1
.line 43
invoke-virtual {v0, p1}, Lokhttp3/internal/connection/Exchange;->writeRequestHeaders(Lokhttp3/Request;)V
.line 47
invoke-virtual {p1}, Lokhttp3/Request;->method()Ljava/lang/String;
move-result-object v3
invoke-static {v3}, Lokhttp3/internal/http/HttpMethod;->permitsRequestBody(Ljava/lang/String;)Z
move-result v3
const/4 v4, 0x0
const/4 v5, 0x0
if-eqz v3, :cond_3
invoke-virtual {p1}, Lokhttp3/Request;->body()Lokhttp3/RequestBody;
move-result-object v3
if-eqz v3, :cond_3
const-string v3, "Expect"
.line 51
invoke-virtual {p1, v3}, Lokhttp3/Request;->header(Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
const-string v6, "100-continue"
invoke-virtual {v6, v3}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v3
const/4 v6, 0x1
if-eqz v3, :cond_0
.line 52
invoke-virtual {v0}, Lokhttp3/internal/connection/Exchange;->flushRequest()V
.line 54
invoke-virtual {v0}, Lokhttp3/internal/connection/Exchange;->responseHeadersStart()V
.line 55
invoke-virtual {v0, v6}, Lokhttp3/internal/connection/Exchange;->readResponseHeaders(Z)Lokhttp3/Response$Builder;
move-result-object v5
move v3, v6
goto :goto_0
:cond_0
move v3, v4
:goto_0
if-nez v5, :cond_2
.line 59
invoke-virtual {p1}, Lokhttp3/Request;->body()Lokhttp3/RequestBody;
move-result-object v7
invoke-virtual {v7}, Lokhttp3/RequestBody;->isDuplex()Z
move-result v7
if-eqz v7, :cond_1
.line 61
invoke-virtual {v0}, Lokhttp3/internal/connection/Exchange;->flushRequest()V
.line 63
invoke-virtual {v0, p1, v6}, Lokhttp3/internal/connection/Exchange;->createRequestBody(Lokhttp3/Request;Z)Lokio/Sink;
move-result-object v6
.line 62
invoke-static {v6}, Lokio/Okio;->buffer(Lokio/Sink;)Lokio/BufferedSink;
move-result-object v6
.line 64
invoke-virtual {p1}, Lokhttp3/Request;->body()Lokhttp3/RequestBody;
move-result-object v7
invoke-virtual {v7, v6}, Lokhttp3/RequestBody;->writeTo(Lokio/BufferedSink;)V
goto :goto_1
.line 68
:cond_1
invoke-virtual {v0, p1, v4}, Lokhttp3/internal/connection/Exchange;->createRequestBody(Lokhttp3/Request;Z)Lokio/Sink;
move-result-object v6
.line 67
invoke-static {v6}, Lokio/Okio;->buffer(Lokio/Sink;)Lokio/BufferedSink;
move-result-object v6
.line 69
invoke-virtual {p1}, Lokhttp3/Request;->body()Lokhttp3/RequestBody;
move-result-object v7
invoke-virtual {v7, v6}, Lokhttp3/RequestBody;->writeTo(Lokio/BufferedSink;)V
.line 70
invoke-interface {v6}, Lokio/Sink;->close()V
goto :goto_1
.line 73
:cond_2
invoke-virtual {v0}, Lokhttp3/internal/connection/Exchange;->noRequestBody()V
.line 74
invoke-virtual {v0}, Lokhttp3/internal/connection/Exchange;->connection()Lokhttp3/internal/connection/RealConnection;
move-result-object v6
invoke-virtual {v6}, Lokhttp3/internal/connection/RealConnection;->isMultiplexed()Z
move-result v6
if-nez v6, :cond_4
.line 78
invoke-virtual {v0}, Lokhttp3/internal/connection/Exchange;->noNewExchangesOnConnection()V
goto :goto_1
.line 82
:cond_3
invoke-virtual {v0}, Lokhttp3/internal/connection/Exchange;->noRequestBody()V
move v3, v4
.line 85
:cond_4
:goto_1
invoke-virtual {p1}, Lokhttp3/Request;->body()Lokhttp3/RequestBody;
move-result-object v6
if-eqz v6, :cond_5
invoke-virtual {p1}, Lokhttp3/Request;->body()Lokhttp3/RequestBody;
move-result-object v6
invoke-virtual {v6}, Lokhttp3/RequestBody;->isDuplex()Z
move-result v6
if-nez v6, :cond_6
.line 86
:cond_5
invoke-virtual {v0}, Lokhttp3/internal/connection/Exchange;->finishRequest()V
:cond_6
if-nez v3, :cond_7
.line 90
invoke-virtual {v0}, Lokhttp3/internal/connection/Exchange;->responseHeadersStart()V
:cond_7
if-nez v5, :cond_8
.line 94
invoke-virtual {v0, v4}, Lokhttp3/internal/connection/Exchange;->readResponseHeaders(Z)Lokhttp3/Response$Builder;
move-result-object v5
.line 98
:cond_8
invoke-virtual {v5, p1}, Lokhttp3/Response$Builder;->request(Lokhttp3/Request;)Lokhttp3/Response$Builder;
move-result-object v3
.line 99
invoke-virtual {v0}, Lokhttp3/internal/connection/Exchange;->connection()Lokhttp3/internal/connection/RealConnection;
move-result-object v5
invoke-virtual {v5}, Lokhttp3/internal/connection/RealConnection;->handshake()Lokhttp3/Handshake;
move-result-object v5
invoke-virtual {v3, v5}, Lokhttp3/Response$Builder;->handshake(Lokhttp3/Handshake;)Lokhttp3/Response$Builder;
move-result-object v3
.line 100
invoke-virtual {v3, v1, v2}, Lokhttp3/Response$Builder;->sentRequestAtMillis(J)Lokhttp3/Response$Builder;
move-result-object v3
.line 101
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v5
invoke-virtual {v3, v5, v6}, Lokhttp3/Response$Builder;->receivedResponseAtMillis(J)Lokhttp3/Response$Builder;
move-result-object v3
.line 102
invoke-virtual {v3}, Lokhttp3/Response$Builder;->build()Lokhttp3/Response;
move-result-object v3
.line 104
invoke-virtual {v3}, Lokhttp3/Response;->code()I
move-result v5
const/16 v6, 0x64
if-ne v5, v6, :cond_9
.line 108
invoke-virtual {v0, v4}, Lokhttp3/internal/connection/Exchange;->readResponseHeaders(Z)Lokhttp3/Response$Builder;
move-result-object v3
.line 109
invoke-virtual {v3, p1}, Lokhttp3/Response$Builder;->request(Lokhttp3/Request;)Lokhttp3/Response$Builder;
move-result-object p1
.line 110
invoke-virtual {v0}, Lokhttp3/internal/connection/Exchange;->connection()Lokhttp3/internal/connection/RealConnection;
move-result-object v3
invoke-virtual {v3}, Lokhttp3/internal/connection/RealConnection;->handshake()Lokhttp3/Handshake;
move-result-object v3
invoke-virtual {p1, v3}, Lokhttp3/Response$Builder;->handshake(Lokhttp3/Handshake;)Lokhttp3/Response$Builder;
move-result-object p1
.line 111
invoke-virtual {p1, v1, v2}, Lokhttp3/Response$Builder;->sentRequestAtMillis(J)Lokhttp3/Response$Builder;
move-result-object p1
.line 112
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v1
invoke-virtual {p1, v1, v2}, Lokhttp3/Response$Builder;->receivedResponseAtMillis(J)Lokhttp3/Response$Builder;
move-result-object p1
.line 113
invoke-virtual {p1}, Lokhttp3/Response$Builder;->build()Lokhttp3/Response;
move-result-object v3
.line 115
invoke-virtual {v3}, Lokhttp3/Response;->code()I
move-result v5
.line 118
:cond_9
invoke-virtual {v0, v3}, Lokhttp3/internal/connection/Exchange;->responseHeadersEnd(Lokhttp3/Response;)V
iget-boolean p1, p0, Lokhttp3/internal/http/CallServerInterceptor;->forWebSocket:Z
if-eqz p1, :cond_a
const/16 p1, 0x65
if-ne v5, p1, :cond_a
.line 122
invoke-virtual {v3}, Lokhttp3/Response;->newBuilder()Lokhttp3/Response$Builder;
move-result-object p1
sget-object v1, Lokhttp3/internal/Util;->EMPTY_RESPONSE:Lokhttp3/ResponseBody;
.line 123
invoke-virtual {p1, v1}, Lokhttp3/Response$Builder;->body(Lokhttp3/ResponseBody;)Lokhttp3/Response$Builder;
move-result-object p1
.line 124
invoke-virtual {p1}, Lokhttp3/Response$Builder;->build()Lokhttp3/Response;
move-result-object p1
goto :goto_2
.line 126
:cond_a
invoke-virtual {v3}, Lokhttp3/Response;->newBuilder()Lokhttp3/Response$Builder;
move-result-object p1
.line 127
invoke-virtual {v0, v3}, Lokhttp3/internal/connection/Exchange;->openResponseBody(Lokhttp3/Response;)Lokhttp3/ResponseBody;
move-result-object v1
invoke-virtual {p1, v1}, Lokhttp3/Response$Builder;->body(Lokhttp3/ResponseBody;)Lokhttp3/Response$Builder;
move-result-object p1
.line 128
invoke-virtual {p1}, Lokhttp3/Response$Builder;->build()Lokhttp3/Response;
move-result-object p1
.line 131
:goto_2
invoke-virtual {p1}, Lokhttp3/Response;->request()Lokhttp3/Request;
move-result-object v1
const-string v2, "Connection"
invoke-virtual {v1, v2}, Lokhttp3/Request;->header(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
const-string v3, "close"
invoke-virtual {v3, v1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v1
if-nez v1, :cond_b
.line 132
invoke-virtual {p1, v2}, Lokhttp3/Response;->header(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
invoke-virtual {v3, v1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v1
if-eqz v1, :cond_c
.line 133
:cond_b
invoke-virtual {v0}, Lokhttp3/internal/connection/Exchange;->noNewExchangesOnConnection()V
:cond_c
const/16 v0, 0xcc
if-eq v5, v0, :cond_d
const/16 v0, 0xcd
if-ne v5, v0, :cond_e
.line 136
:cond_d
invoke-virtual {p1}, Lokhttp3/Response;->body()Lokhttp3/ResponseBody;
move-result-object v0
invoke-virtual {v0}, Lokhttp3/ResponseBody;->contentLength()J
move-result-wide v0
const-wide/16 v2, 0x0
cmp-long v0, v0, v2
if-gtz v0, :cond_f
:cond_e
return-object p1
.line 137
:cond_f
new-instance v0, Ljava/net/ProtocolException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "HTTP "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, " had non-zero Content-Length: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 138
invoke-virtual {p1}, Lokhttp3/Response;->body()Lokhttp3/ResponseBody;
move-result-object p1
invoke-virtual {p1}, Lokhttp3/ResponseBody;->contentLength()J
move-result-wide v2
invoke-virtual {v1, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Ljava/net/ProtocolException;-><init>(Ljava/lang/String;)V
throw v0
.end method

View File

@@ -0,0 +1,32 @@
.class public interface abstract Lokhttp3/internal/http/ExchangeCodec;
.super Ljava/lang/Object;
.source "SourceFile"
# virtual methods
.method public abstract cancel()V
.end method
.method public abstract connection()Lokhttp3/internal/connection/RealConnection;
.end method
.method public abstract createRequestBody(Lokhttp3/Request;J)Lokio/Sink;
.end method
.method public abstract finishRequest()V
.end method
.method public abstract flushRequest()V
.end method
.method public abstract openResponseBodySource(Lokhttp3/Response;)Lokio/Source;
.end method
.method public abstract readResponseHeaders(Z)Lokhttp3/Response$Builder;
.end method
.method public abstract reportedContentLength(Lokhttp3/Response;)J
.end method
.method public abstract writeRequestHeaders(Lokhttp3/Request;)V
.end method

View File

@@ -0,0 +1,63 @@
.class public Lokhttp3/internal/http/HttpDate$1;
.super Ljava/lang/ThreadLocal;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lokhttp3/internal/http/HttpDate;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 38
invoke-direct {p0}, Ljava/lang/ThreadLocal;-><init>()V
return-void
.end method
# virtual methods
.method public bridge synthetic initialValue()Ljava/lang/Object;
.locals 1
.line 38
invoke-virtual {p0}, Lokhttp3/internal/http/HttpDate$1;->initialValue()Ljava/text/DateFormat;
move-result-object v0
return-object v0
.end method
.method public initialValue()Ljava/text/DateFormat;
.locals 3
.line 41
new-instance v0, Ljava/text/SimpleDateFormat;
const-string v1, "EEE, dd MMM yyyy HH:mm:ss \'GMT\'"
sget-object v2, Ljava/util/Locale;->US:Ljava/util/Locale;
invoke-direct {v0, v1, v2}, Ljava/text/SimpleDateFormat;-><init>(Ljava/lang/String;Ljava/util/Locale;)V
const/4 v1, 0x0
.line 42
invoke-virtual {v0, v1}, Ljava/text/DateFormat;->setLenient(Z)V
.line 43
sget-object v1, Lokhttp3/internal/Util;->UTC:Ljava/util/TimeZone;
invoke-virtual {v0, v1}, Ljava/text/DateFormat;->setTimeZone(Ljava/util/TimeZone;)V
return-object v0
.end method

View File

@@ -0,0 +1,225 @@
.class public abstract Lokhttp3/internal/http/HttpDate;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field public static final BROWSER_COMPATIBLE_DATE_FORMATS:[Ljava/text/DateFormat;
.field public static final BROWSER_COMPATIBLE_DATE_FORMAT_STRINGS:[Ljava/lang/String;
.field public static final STANDARD_DATE_FORMAT:Ljava/lang/ThreadLocal;
# direct methods
.method static constructor <clinit>()V
.locals 16
.line 37
new-instance v0, Lokhttp3/internal/http/HttpDate$1;
invoke-direct {v0}, Lokhttp3/internal/http/HttpDate$1;-><init>()V
sput-object v0, Lokhttp3/internal/http/HttpDate;->STANDARD_DATE_FORMAT:Ljava/lang/ThreadLocal;
const-string v1, "EEE, dd MMM yyyy HH:mm:ss zzz"
const-string v2, "EEEE, dd-MMM-yy HH:mm:ss zzz"
const-string v3, "EEE MMM d HH:mm:ss yyyy"
const-string v4, "EEE, dd-MMM-yyyy HH:mm:ss z"
const-string v5, "EEE, dd-MMM-yyyy HH-mm-ss z"
const-string v6, "EEE, dd MMM yy HH:mm:ss z"
const-string v7, "EEE dd-MMM-yyyy HH:mm:ss z"
const-string v8, "EEE dd MMM yyyy HH:mm:ss z"
const-string v9, "EEE dd-MMM-yyyy HH-mm-ss z"
const-string v10, "EEE dd-MMM-yy HH:mm:ss z"
const-string v11, "EEE dd MMM yy HH:mm:ss z"
const-string v12, "EEE,dd-MMM-yy HH:mm:ss z"
const-string v13, "EEE,dd-MMM-yyyy HH:mm:ss z"
const-string v14, "EEE, dd-MM-yyyy HH:mm:ss z"
const-string v15, "EEE MMM d yyyy HH:mm:ss z"
filled-new-array/range {v1 .. v15}, [Ljava/lang/String;
move-result-object v0
sput-object v0, Lokhttp3/internal/http/HttpDate;->BROWSER_COMPATIBLE_DATE_FORMAT_STRINGS:[Ljava/lang/String;
array-length v0, v0
.line 71
new-array v0, v0, [Ljava/text/DateFormat;
sput-object v0, Lokhttp3/internal/http/HttpDate;->BROWSER_COMPATIBLE_DATE_FORMATS:[Ljava/text/DateFormat;
return-void
.end method
.method public static format(Ljava/util/Date;)Ljava/lang/String;
.locals 1
sget-object v0, Lokhttp3/internal/http/HttpDate;->STANDARD_DATE_FORMAT:Ljava/lang/ThreadLocal;
.line 114
invoke-virtual {v0}, Ljava/lang/ThreadLocal;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/text/DateFormat;
invoke-virtual {v0, p0}, Ljava/text/DateFormat;->format(Ljava/util/Date;)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static parse(Ljava/lang/String;)Ljava/util/Date;
.locals 10
.line 76
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
const/4 v1, 0x0
if-nez v0, :cond_0
return-object v1
.line 80
:cond_0
new-instance v0, Ljava/text/ParsePosition;
const/4 v2, 0x0
invoke-direct {v0, v2}, Ljava/text/ParsePosition;-><init>(I)V
sget-object v3, Lokhttp3/internal/http/HttpDate;->STANDARD_DATE_FORMAT:Ljava/lang/ThreadLocal;
.line 81
invoke-virtual {v3}, Ljava/lang/ThreadLocal;->get()Ljava/lang/Object;
move-result-object v3
check-cast v3, Ljava/text/DateFormat;
invoke-virtual {v3, p0, v0}, Ljava/text/DateFormat;->parse(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/util/Date;
move-result-object v3
.line 82
invoke-virtual {v0}, Ljava/text/ParsePosition;->getIndex()I
move-result v4
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v5
if-ne v4, v5, :cond_1
return-object v3
:cond_1
sget-object v3, Lokhttp3/internal/http/HttpDate;->BROWSER_COMPATIBLE_DATE_FORMAT_STRINGS:[Ljava/lang/String;
.line 87
monitor-enter v3
.line 88
:try_start_0
array-length v4, v3
move v5, v2
:goto_0
if-ge v5, v4, :cond_4
sget-object v6, Lokhttp3/internal/http/HttpDate;->BROWSER_COMPATIBLE_DATE_FORMATS:[Ljava/text/DateFormat;
.line 89
aget-object v7, v6, v5
if-nez v7, :cond_2
.line 91
new-instance v7, Ljava/text/SimpleDateFormat;
sget-object v8, Lokhttp3/internal/http/HttpDate;->BROWSER_COMPATIBLE_DATE_FORMAT_STRINGS:[Ljava/lang/String;
aget-object v8, v8, v5
sget-object v9, Ljava/util/Locale;->US:Ljava/util/Locale;
invoke-direct {v7, v8, v9}, Ljava/text/SimpleDateFormat;-><init>(Ljava/lang/String;Ljava/util/Locale;)V
.line 94
sget-object v8, Lokhttp3/internal/Util;->UTC:Ljava/util/TimeZone;
invoke-virtual {v7, v8}, Ljava/text/DateFormat;->setTimeZone(Ljava/util/TimeZone;)V
.line 95
aput-object v7, v6, v5
goto :goto_1
:catchall_0
move-exception p0
goto :goto_2
.line 97
:cond_2
:goto_1
invoke-virtual {v0, v2}, Ljava/text/ParsePosition;->setIndex(I)V
.line 98
invoke-virtual {v7, p0, v0}, Ljava/text/DateFormat;->parse(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/util/Date;
move-result-object v6
.line 99
invoke-virtual {v0}, Ljava/text/ParsePosition;->getIndex()I
move-result v7
if-eqz v7, :cond_3
.line 105
monitor-exit v3
return-object v6
:cond_3
add-int/lit8 v5, v5, 0x1
goto :goto_0
.line 108
:cond_4
monitor-exit v3
return-object v1
:goto_2
monitor-exit v3
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw p0
.end method

View File

@@ -0,0 +1,609 @@
.class public abstract Lokhttp3/internal/http/HttpHeaders;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field public static final QUOTED_STRING_DELIMITERS:Lokio/ByteString;
.field public static final TOKEN_DELIMITERS:Lokio/ByteString;
# direct methods
.method static constructor <clinit>()V
.locals 1
const-string v0, "\"\\"
.line 45
invoke-static {v0}, Lokio/ByteString;->encodeUtf8(Ljava/lang/String;)Lokio/ByteString;
move-result-object v0
sput-object v0, Lokhttp3/internal/http/HttpHeaders;->QUOTED_STRING_DELIMITERS:Lokio/ByteString;
const-string v0, "\t ,="
.line 46
invoke-static {v0}, Lokio/ByteString;->encodeUtf8(Ljava/lang/String;)Lokio/ByteString;
move-result-object v0
sput-object v0, Lokhttp3/internal/http/HttpHeaders;->TOKEN_DELIMITERS:Lokio/ByteString;
return-void
.end method
.method public static contentLength(Lokhttp3/Headers;)J
.locals 2
const-string v0, "Content-Length"
.line 56
invoke-virtual {p0, v0}, Lokhttp3/Headers;->get(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
invoke-static {p0}, Lokhttp3/internal/http/HttpHeaders;->stringToLong(Ljava/lang/String;)J
move-result-wide v0
return-wide v0
.end method
.method public static contentLength(Lokhttp3/Response;)J
.locals 2
.line 52
invoke-virtual {p0}, Lokhttp3/Response;->headers()Lokhttp3/Headers;
move-result-object p0
invoke-static {p0}, Lokhttp3/internal/http/HttpHeaders;->contentLength(Lokhttp3/Headers;)J
move-result-wide v0
return-wide v0
.end method
.method public static hasBody(Lokhttp3/Response;)Z
.locals 8
.line 325
invoke-virtual {p0}, Lokhttp3/Response;->request()Lokhttp3/Request;
move-result-object v0
invoke-virtual {v0}, Lokhttp3/Request;->method()Ljava/lang/String;
move-result-object v0
const-string v1, "HEAD"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
const/4 v1, 0x0
if-eqz v0, :cond_0
return v1
.line 329
:cond_0
invoke-virtual {p0}, Lokhttp3/Response;->code()I
move-result v0
const/16 v2, 0x64
const/4 v3, 0x1
if-lt v0, v2, :cond_1
const/16 v2, 0xc8
if-lt v0, v2, :cond_2
:cond_1
const/16 v2, 0xcc
if-eq v0, v2, :cond_2
const/16 v2, 0x130
if-eq v0, v2, :cond_2
return v3
.line 338
:cond_2
invoke-static {p0}, Lokhttp3/internal/http/HttpHeaders;->contentLength(Lokhttp3/Response;)J
move-result-wide v4
const-wide/16 v6, -0x1
cmp-long v0, v4, v6
if-nez v0, :cond_4
const-string v0, "Transfer-Encoding"
.line 339
invoke-virtual {p0, v0}, Lokhttp3/Response;->header(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
const-string v0, "chunked"
invoke-virtual {v0, p0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result p0
if-eqz p0, :cond_3
goto :goto_0
:cond_3
return v1
:cond_4
:goto_0
return v3
.end method
.method public static hasVaryAll(Lokhttp3/Headers;)Z
.locals 1
.line 91
invoke-static {p0}, Lokhttp3/internal/http/HttpHeaders;->varyFields(Lokhttp3/Headers;)Ljava/util/Set;
move-result-object p0
const-string v0, "*"
invoke-interface {p0, v0}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z
move-result p0
return p0
.end method
.method public static hasVaryAll(Lokhttp3/Response;)Z
.locals 0
.line 84
invoke-virtual {p0}, Lokhttp3/Response;->headers()Lokhttp3/Headers;
move-result-object p0
invoke-static {p0}, Lokhttp3/internal/http/HttpHeaders;->hasVaryAll(Lokhttp3/Headers;)Z
move-result p0
return p0
.end method
.method public static parseSeconds(Ljava/lang/String;I)I
.locals 2
.line 379
:try_start_0
invoke-static {p0}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide p0
:try_end_0
.catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0
const-wide/32 v0, 0x7fffffff
cmp-long v0, p0, v0
if-lez v0, :cond_0
const p0, 0x7fffffff
return p0
:cond_0
const-wide/16 v0, 0x0
cmp-long v0, p0, v0
if-gez v0, :cond_1
const/4 p0, 0x0
return p0
:cond_1
long-to-int p0, p0
return p0
:catch_0
return p1
.end method
.method public static receiveHeaders(Lokhttp3/CookieJar;Lokhttp3/HttpUrl;Lokhttp3/Headers;)V
.locals 1
.line 314
sget-object v0, Lokhttp3/CookieJar;->NO_COOKIES:Lokhttp3/CookieJar;
if-ne p0, v0, :cond_0
return-void
.line 316
:cond_0
invoke-static {p1, p2}, Lokhttp3/Cookie;->parseAll(Lokhttp3/HttpUrl;Lokhttp3/Headers;)Ljava/util/List;
move-result-object p2
.line 317
invoke-interface {p2}, Ljava/util/List;->isEmpty()Z
move-result v0
if-eqz v0, :cond_1
return-void
.line 319
:cond_1
invoke-interface {p0, p1, p2}, Lokhttp3/CookieJar;->saveFromResponse(Lokhttp3/HttpUrl;Ljava/util/List;)V
return-void
.end method
.method public static skipUntil(Ljava/lang/String;ILjava/lang/String;)I
.locals 2
.line 351
:goto_0
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-ge p1, v0, :cond_1
.line 352
invoke-virtual {p0, p1}, Ljava/lang/String;->charAt(I)C
move-result v0
invoke-virtual {p2, v0}, Ljava/lang/String;->indexOf(I)I
move-result v0
const/4 v1, -0x1
if-eq v0, v1, :cond_0
goto :goto_1
:cond_0
add-int/lit8 p1, p1, 0x1
goto :goto_0
:cond_1
:goto_1
return p1
.end method
.method public static skipWhitespace(Ljava/lang/String;I)I
.locals 2
.line 364
:goto_0
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-ge p1, v0, :cond_1
.line 365
invoke-virtual {p0, p1}, Ljava/lang/String;->charAt(I)C
move-result v0
const/16 v1, 0x20
if-eq v0, v1, :cond_0
const/16 v1, 0x9
if-eq v0, v1, :cond_0
goto :goto_1
:cond_0
add-int/lit8 p1, p1, 0x1
goto :goto_0
:cond_1
:goto_1
return p1
.end method
.method public static stringToLong(Ljava/lang/String;)J
.locals 2
const-wide/16 v0, -0x1
if-nez p0, :cond_0
return-wide v0
.line 62
:cond_0
:try_start_0
invoke-static {p0}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide v0
:try_end_0
.catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0
:catch_0
return-wide v0
.end method
.method public static varyFields(Lokhttp3/Headers;)Ljava/util/Set;
.locals 8
.line 102
invoke-static {}, Ljava/util/Collections;->emptySet()Ljava/util/Set;
move-result-object v0
.line 103
invoke-virtual {p0}, Lokhttp3/Headers;->size()I
move-result v1
const/4 v2, 0x0
move v3, v2
:goto_0
if-ge v3, v1, :cond_3
const-string v4, "Vary"
.line 104
invoke-virtual {p0, v3}, Lokhttp3/Headers;->name(I)Ljava/lang/String;
move-result-object v5
invoke-virtual {v4, v5}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v4
if-nez v4, :cond_0
goto :goto_2
.line 106
:cond_0
invoke-virtual {p0, v3}, Lokhttp3/Headers;->value(I)Ljava/lang/String;
move-result-object v4
.line 107
invoke-interface {v0}, Ljava/util/Set;->isEmpty()Z
move-result v5
if-eqz v5, :cond_1
.line 108
new-instance v0, Ljava/util/TreeSet;
sget-object v5, Ljava/lang/String;->CASE_INSENSITIVE_ORDER:Ljava/util/Comparator;
invoke-direct {v0, v5}, Ljava/util/TreeSet;-><init>(Ljava/util/Comparator;)V
:cond_1
const-string v5, ","
.line 110
invoke-virtual {v4, v5}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v4
array-length v5, v4
move v6, v2
:goto_1
if-ge v6, v5, :cond_2
aget-object v7, v4, v6
.line 111
invoke-virtual {v7}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v7
invoke-interface {v0, v7}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
add-int/lit8 v6, v6, 0x1
goto :goto_1
:cond_2
:goto_2
add-int/lit8 v3, v3, 0x1
goto :goto_0
:cond_3
return-object v0
.end method
.method public static varyFields(Lokhttp3/Response;)Ljava/util/Set;
.locals 0
.line 95
invoke-virtual {p0}, Lokhttp3/Response;->headers()Lokhttp3/Headers;
move-result-object p0
invoke-static {p0}, Lokhttp3/internal/http/HttpHeaders;->varyFields(Lokhttp3/Headers;)Ljava/util/Set;
move-result-object p0
return-object p0
.end method
.method public static varyHeaders(Lokhttp3/Headers;Lokhttp3/Headers;)Lokhttp3/Headers;
.locals 5
.line 135
invoke-static {p1}, Lokhttp3/internal/http/HttpHeaders;->varyFields(Lokhttp3/Headers;)Ljava/util/Set;
move-result-object p1
.line 136
invoke-interface {p1}, Ljava/util/Set;->isEmpty()Z
move-result v0
if-eqz v0, :cond_0
sget-object p0, Lokhttp3/internal/Util;->EMPTY_HEADERS:Lokhttp3/Headers;
return-object p0
.line 138
:cond_0
new-instance v0, Lokhttp3/Headers$Builder;
invoke-direct {v0}, Lokhttp3/Headers$Builder;-><init>()V
.line 139
invoke-virtual {p0}, Lokhttp3/Headers;->size()I
move-result v1
const/4 v2, 0x0
:goto_0
if-ge v2, v1, :cond_2
.line 140
invoke-virtual {p0, v2}, Lokhttp3/Headers;->name(I)Ljava/lang/String;
move-result-object v3
.line 141
invoke-interface {p1, v3}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_1
.line 142
invoke-virtual {p0, v2}, Lokhttp3/Headers;->value(I)Ljava/lang/String;
move-result-object v4
invoke-virtual {v0, v3, v4}, Lokhttp3/Headers$Builder;->add(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Headers$Builder;
:cond_1
add-int/lit8 v2, v2, 0x1
goto :goto_0
.line 145
:cond_2
invoke-virtual {v0}, Lokhttp3/Headers$Builder;->build()Lokhttp3/Headers;
move-result-object p0
return-object p0
.end method
.method public static varyHeaders(Lokhttp3/Response;)Lokhttp3/Headers;
.locals 1
.line 125
invoke-virtual {p0}, Lokhttp3/Response;->networkResponse()Lokhttp3/Response;
move-result-object v0
invoke-virtual {v0}, Lokhttp3/Response;->request()Lokhttp3/Request;
move-result-object v0
invoke-virtual {v0}, Lokhttp3/Request;->headers()Lokhttp3/Headers;
move-result-object v0
.line 126
invoke-virtual {p0}, Lokhttp3/Response;->headers()Lokhttp3/Headers;
move-result-object p0
.line 127
invoke-static {v0, p0}, Lokhttp3/internal/http/HttpHeaders;->varyHeaders(Lokhttp3/Headers;Lokhttp3/Headers;)Lokhttp3/Headers;
move-result-object p0
return-object p0
.end method
.method public static varyMatches(Lokhttp3/Response;Lokhttp3/Headers;Lokhttp3/Request;)Z
.locals 2
.line 74
invoke-static {p0}, Lokhttp3/internal/http/HttpHeaders;->varyFields(Lokhttp3/Response;)Ljava/util/Set;
move-result-object p0
invoke-interface {p0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object p0
:cond_0
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_1
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
.line 75
invoke-virtual {p1, v0}, Lokhttp3/Headers;->values(Ljava/lang/String;)Ljava/util/List;
move-result-object v1
invoke-virtual {p2, v0}, Lokhttp3/Request;->headers(Ljava/lang/String;)Ljava/util/List;
move-result-object v0
invoke-static {v1, v0}, Ljava/util/Objects;->equals(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_0
const/4 p0, 0x0
return p0
:cond_1
const/4 p0, 0x1
return p0
.end method

View File

@@ -0,0 +1,190 @@
.class public abstract Lokhttp3/internal/http/HttpMethod;
.super Ljava/lang/Object;
.source "SourceFile"
# direct methods
.method public static invalidatesCache(Ljava/lang/String;)Z
.locals 1
const-string v0, "POST"
.line 20
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_1
const-string v0, "PATCH"
.line 21
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_1
const-string v0, "PUT"
.line 22
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_1
const-string v0, "DELETE"
.line 23
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_1
const-string v0, "MOVE"
.line 24
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p0
if-eqz p0, :cond_0
goto :goto_0
:cond_0
const/4 p0, 0x0
goto :goto_1
:cond_1
:goto_0
const/4 p0, 0x1
:goto_1
return p0
.end method
.method public static permitsRequestBody(Ljava/lang/String;)Z
.locals 1
const-string v0, "GET"
.line 36
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_0
const-string v0, "HEAD"
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p0
if-nez p0, :cond_0
const/4 p0, 0x1
goto :goto_0
:cond_0
const/4 p0, 0x0
:goto_0
return p0
.end method
.method public static redirectsToGet(Ljava/lang/String;)Z
.locals 1
const-string v0, "PROPFIND"
.line 45
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p0
xor-int/lit8 p0, p0, 0x1
return p0
.end method
.method public static redirectsWithBody(Ljava/lang/String;)Z
.locals 1
const-string v0, "PROPFIND"
.line 40
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p0
return p0
.end method
.method public static requiresRequestBody(Ljava/lang/String;)Z
.locals 1
const-string v0, "POST"
.line 28
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_1
const-string v0, "PUT"
.line 29
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_1
const-string v0, "PATCH"
.line 30
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_1
const-string v0, "PROPPATCH"
.line 31
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_1
const-string v0, "REPORT"
.line 32
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p0
if-eqz p0, :cond_0
goto :goto_0
:cond_0
const/4 p0, 0x0
goto :goto_1
:cond_1
:goto_0
const/4 p0, 0x1
:goto_1
return p0
.end method

View File

@@ -0,0 +1,419 @@
.class public final Lokhttp3/internal/http/RealInterceptorChain;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lokhttp3/Interceptor$Chain;
# instance fields
.field public final call:Lokhttp3/Call;
.field public calls:I
.field public final connectTimeout:I
.field public final exchange:Lokhttp3/internal/connection/Exchange;
.field public final index:I
.field public final interceptors:Ljava/util/List;
.field public final readTimeout:I
.field public final request:Lokhttp3/Request;
.field public final transmitter:Lokhttp3/internal/connection/Transmitter;
.field public final writeTimeout:I
# direct methods
.method public constructor <init>(Ljava/util/List;Lokhttp3/internal/connection/Transmitter;Lokhttp3/internal/connection/Exchange;ILokhttp3/Request;Lokhttp3/Call;III)V
.locals 0
.line 53
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lokhttp3/internal/http/RealInterceptorChain;->interceptors:Ljava/util/List;
iput-object p2, p0, Lokhttp3/internal/http/RealInterceptorChain;->transmitter:Lokhttp3/internal/connection/Transmitter;
iput-object p3, p0, Lokhttp3/internal/http/RealInterceptorChain;->exchange:Lokhttp3/internal/connection/Exchange;
iput p4, p0, Lokhttp3/internal/http/RealInterceptorChain;->index:I
iput-object p5, p0, Lokhttp3/internal/http/RealInterceptorChain;->request:Lokhttp3/Request;
iput-object p6, p0, Lokhttp3/internal/http/RealInterceptorChain;->call:Lokhttp3/Call;
iput p7, p0, Lokhttp3/internal/http/RealInterceptorChain;->connectTimeout:I
iput p8, p0, Lokhttp3/internal/http/RealInterceptorChain;->readTimeout:I
iput p9, p0, Lokhttp3/internal/http/RealInterceptorChain;->writeTimeout:I
return-void
.end method
# virtual methods
.method public connectTimeoutMillis()I
.locals 1
iget v0, p0, Lokhttp3/internal/http/RealInterceptorChain;->connectTimeout:I
return v0
.end method
.method public exchange()Lokhttp3/internal/connection/Exchange;
.locals 1
iget-object v0, p0, Lokhttp3/internal/http/RealInterceptorChain;->exchange:Lokhttp3/internal/connection/Exchange;
if-eqz v0, :cond_0
return-object v0
.line 104
:cond_0
new-instance v0, Ljava/lang/IllegalStateException;
invoke-direct {v0}, Ljava/lang/IllegalStateException;-><init>()V
throw v0
.end method
.method public proceed(Lokhttp3/Request;)Lokhttp3/Response;
.locals 2
iget-object v0, p0, Lokhttp3/internal/http/RealInterceptorChain;->transmitter:Lokhttp3/internal/connection/Transmitter;
iget-object v1, p0, Lokhttp3/internal/http/RealInterceptorChain;->exchange:Lokhttp3/internal/connection/Exchange;
.line 117
invoke-virtual {p0, p1, v0, v1}, Lokhttp3/internal/http/RealInterceptorChain;->proceed(Lokhttp3/Request;Lokhttp3/internal/connection/Transmitter;Lokhttp3/internal/connection/Exchange;)Lokhttp3/Response;
move-result-object p1
return-object p1
.end method
.method public proceed(Lokhttp3/Request;Lokhttp3/internal/connection/Transmitter;Lokhttp3/internal/connection/Exchange;)Lokhttp3/Response;
.locals 15
move-object v0, p0
iget v1, v0, Lokhttp3/internal/http/RealInterceptorChain;->index:I
iget-object v2, v0, Lokhttp3/internal/http/RealInterceptorChain;->interceptors:Ljava/util/List;
.line 122
invoke-interface {v2}, Ljava/util/List;->size()I
move-result v2
if-ge v1, v2, :cond_8
iget v1, v0, Lokhttp3/internal/http/RealInterceptorChain;->calls:I
const/4 v2, 0x1
add-int/2addr v1, v2
iput v1, v0, Lokhttp3/internal/http/RealInterceptorChain;->calls:I
iget-object v1, v0, Lokhttp3/internal/http/RealInterceptorChain;->exchange:Lokhttp3/internal/connection/Exchange;
const-string v3, "network interceptor "
if-eqz v1, :cond_1
.line 127
invoke-virtual {v1}, Lokhttp3/internal/connection/Exchange;->connection()Lokhttp3/internal/connection/RealConnection;
move-result-object v1
invoke-virtual/range {p1 .. p1}, Lokhttp3/Request;->url()Lokhttp3/HttpUrl;
move-result-object v4
invoke-virtual {v1, v4}, Lokhttp3/internal/connection/RealConnection;->supportsUrl(Lokhttp3/HttpUrl;)Z
move-result v1
if-eqz v1, :cond_0
goto :goto_0
.line 128
:cond_0
new-instance v1, Ljava/lang/IllegalStateException;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v3, v0, Lokhttp3/internal/http/RealInterceptorChain;->interceptors:Ljava/util/List;
iget v5, v0, Lokhttp3/internal/http/RealInterceptorChain;->index:I
sub-int/2addr v5, v2
invoke-interface {v3, v5}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v2
invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v2, " must retain the same host and port"
invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v1
:cond_1
:goto_0
iget-object v1, v0, Lokhttp3/internal/http/RealInterceptorChain;->exchange:Lokhttp3/internal/connection/Exchange;
const-string v4, " must call proceed() exactly once"
if-eqz v1, :cond_3
iget v1, v0, Lokhttp3/internal/http/RealInterceptorChain;->calls:I
if-gt v1, v2, :cond_2
goto :goto_1
.line 134
:cond_2
new-instance v1, Ljava/lang/IllegalStateException;
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v3, v0, Lokhttp3/internal/http/RealInterceptorChain;->interceptors:Ljava/util/List;
iget v6, v0, Lokhttp3/internal/http/RealInterceptorChain;->index:I
sub-int/2addr v6, v2
invoke-interface {v3, v6}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v2
invoke-virtual {v5, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v1
.line 139
:cond_3
:goto_1
new-instance v1, Lokhttp3/internal/http/RealInterceptorChain;
iget-object v6, v0, Lokhttp3/internal/http/RealInterceptorChain;->interceptors:Ljava/util/List;
iget v5, v0, Lokhttp3/internal/http/RealInterceptorChain;->index:I
add-int/lit8 v9, v5, 0x1
iget-object v11, v0, Lokhttp3/internal/http/RealInterceptorChain;->call:Lokhttp3/Call;
iget v12, v0, Lokhttp3/internal/http/RealInterceptorChain;->connectTimeout:I
iget v13, v0, Lokhttp3/internal/http/RealInterceptorChain;->readTimeout:I
iget v14, v0, Lokhttp3/internal/http/RealInterceptorChain;->writeTimeout:I
move-object v5, v1
move-object/from16 v7, p2
move-object/from16 v8, p3
move-object/from16 v10, p1
invoke-direct/range {v5 .. v14}, Lokhttp3/internal/http/RealInterceptorChain;-><init>(Ljava/util/List;Lokhttp3/internal/connection/Transmitter;Lokhttp3/internal/connection/Exchange;ILokhttp3/Request;Lokhttp3/Call;III)V
iget-object v5, v0, Lokhttp3/internal/http/RealInterceptorChain;->interceptors:Ljava/util/List;
iget v6, v0, Lokhttp3/internal/http/RealInterceptorChain;->index:I
.line 141
invoke-interface {v5, v6}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v5
check-cast v5, Lokhttp3/Interceptor;
.line 142
invoke-interface {v5, v1}, Lokhttp3/Interceptor;->intercept(Lokhttp3/Interceptor$Chain;)Lokhttp3/Response;
move-result-object v6
if-eqz p3, :cond_5
iget v7, v0, Lokhttp3/internal/http/RealInterceptorChain;->index:I
add-int/2addr v7, v2
iget-object v8, v0, Lokhttp3/internal/http/RealInterceptorChain;->interceptors:Ljava/util/List;
.line 145
invoke-interface {v8}, Ljava/util/List;->size()I
move-result v8
if-ge v7, v8, :cond_5
iget v1, v1, Lokhttp3/internal/http/RealInterceptorChain;->calls:I
if-ne v1, v2, :cond_4
goto :goto_2
.line 146
:cond_4
new-instance v1, Ljava/lang/IllegalStateException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v1
:cond_5
:goto_2
const-string v1, "interceptor "
if-eqz v6, :cond_7
.line 155
invoke-virtual {v6}, Lokhttp3/Response;->body()Lokhttp3/ResponseBody;
move-result-object v2
if-eqz v2, :cond_6
return-object v6
.line 156
:cond_6
new-instance v2, Ljava/lang/IllegalStateException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v1, " returned a response with no body"
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v2, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v2
.line 152
:cond_7
new-instance v2, Ljava/lang/NullPointerException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v1, " returned null"
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v2, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
throw v2
.line 122
:cond_8
new-instance v1, Ljava/lang/AssertionError;
invoke-direct {v1}, Ljava/lang/AssertionError;-><init>()V
throw v1
.end method
.method public readTimeoutMillis()I
.locals 1
iget v0, p0, Lokhttp3/internal/http/RealInterceptorChain;->readTimeout:I
return v0
.end method
.method public request()Lokhttp3/Request;
.locals 1
iget-object v0, p0, Lokhttp3/internal/http/RealInterceptorChain;->request:Lokhttp3/Request;
return-object v0
.end method
.method public transmitter()Lokhttp3/internal/connection/Transmitter;
.locals 1
iget-object v0, p0, Lokhttp3/internal/http/RealInterceptorChain;->transmitter:Lokhttp3/internal/connection/Transmitter;
return-object v0
.end method
.method public writeTimeoutMillis()I
.locals 1
iget v0, p0, Lokhttp3/internal/http/RealInterceptorChain;->writeTimeout:I
return v0
.end method

View File

@@ -0,0 +1,67 @@
.class public final Lokhttp3/internal/http/RealResponseBody;
.super Lokhttp3/ResponseBody;
.source "SourceFile"
# instance fields
.field public final contentLength:J
.field public final contentTypeString:Ljava/lang/String;
.field public final source:Lokio/BufferedSource;
# direct methods
.method public constructor <init>(Ljava/lang/String;JLokio/BufferedSource;)V
.locals 0
.line 33
invoke-direct {p0}, Lokhttp3/ResponseBody;-><init>()V
iput-object p1, p0, Lokhttp3/internal/http/RealResponseBody;->contentTypeString:Ljava/lang/String;
iput-wide p2, p0, Lokhttp3/internal/http/RealResponseBody;->contentLength:J
iput-object p4, p0, Lokhttp3/internal/http/RealResponseBody;->source:Lokio/BufferedSource;
return-void
.end method
# virtual methods
.method public contentLength()J
.locals 2
iget-wide v0, p0, Lokhttp3/internal/http/RealResponseBody;->contentLength:J
return-wide v0
.end method
.method public contentType()Lokhttp3/MediaType;
.locals 1
iget-object v0, p0, Lokhttp3/internal/http/RealResponseBody;->contentTypeString:Ljava/lang/String;
if-eqz v0, :cond_0
.line 40
invoke-static {v0}, Lokhttp3/MediaType;->parse(Ljava/lang/String;)Lokhttp3/MediaType;
move-result-object v0
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return-object v0
.end method
.method public source()Lokio/BufferedSource;
.locals 1
iget-object v0, p0, Lokhttp3/internal/http/RealResponseBody;->source:Lokio/BufferedSource;
return-object v0
.end method

View File

@@ -0,0 +1,128 @@
.class public abstract Lokhttp3/internal/http/RequestLine;
.super Ljava/lang/Object;
.source "SourceFile"
# direct methods
.method public static get(Lokhttp3/Request;Ljava/net/Proxy$Type;)Ljava/lang/String;
.locals 2
.line 33
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
.line 34
invoke-virtual {p0}, Lokhttp3/Request;->method()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const/16 v1, 0x20
.line 35
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 37
invoke-static {p0, p1}, Lokhttp3/internal/http/RequestLine;->includeAuthorityInRequestLine(Lokhttp3/Request;Ljava/net/Proxy$Type;)Z
move-result p1
if-eqz p1, :cond_0
.line 38
invoke-virtual {p0}, Lokhttp3/Request;->url()Lokhttp3/HttpUrl;
move-result-object p0
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
goto :goto_0
.line 40
:cond_0
invoke-virtual {p0}, Lokhttp3/Request;->url()Lokhttp3/HttpUrl;
move-result-object p0
invoke-static {p0}, Lokhttp3/internal/http/RequestLine;->requestPath(Lokhttp3/HttpUrl;)Ljava/lang/String;
move-result-object p0
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:goto_0
const-string p0, " HTTP/1.1"
.line 43
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 44
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static includeAuthorityInRequestLine(Lokhttp3/Request;Ljava/net/Proxy$Type;)Z
.locals 0
.line 52
invoke-virtual {p0}, Lokhttp3/Request;->isHttps()Z
move-result p0
if-nez p0, :cond_0
sget-object p0, Ljava/net/Proxy$Type;->HTTP:Ljava/net/Proxy$Type;
if-ne p1, p0, :cond_0
const/4 p0, 0x1
goto :goto_0
:cond_0
const/4 p0, 0x0
:goto_0
return p0
.end method
.method public static requestPath(Lokhttp3/HttpUrl;)Ljava/lang/String;
.locals 2
.line 60
invoke-virtual {p0}, Lokhttp3/HttpUrl;->encodedPath()Ljava/lang/String;
move-result-object v0
.line 61
invoke-virtual {p0}, Lokhttp3/HttpUrl;->encodedQuery()Ljava/lang/String;
move-result-object p0
if-eqz p0, :cond_0
.line 62
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const/16 v0, 0x3f
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
:cond_0
return-object v0
.end method

View File

@@ -0,0 +1,933 @@
.class public final Lokhttp3/internal/http/RetryAndFollowUpInterceptor;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lokhttp3/Interceptor;
# instance fields
.field public final client:Lokhttp3/OkHttpClient;
# direct methods
.method public constructor <init>(Lokhttp3/OkHttpClient;)V
.locals 0
.line 67
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lokhttp3/internal/http/RetryAndFollowUpInterceptor;->client:Lokhttp3/OkHttpClient;
return-void
.end method
# virtual methods
.method public final followUpRequest(Lokhttp3/Response;Lokhttp3/Route;)Lokhttp3/Request;
.locals 6
if-eqz p1, :cond_16
.line 216
invoke-virtual {p1}, Lokhttp3/Response;->code()I
move-result v0
.line 218
invoke-virtual {p1}, Lokhttp3/Response;->request()Lokhttp3/Request;
move-result-object v1
invoke-virtual {v1}, Lokhttp3/Request;->method()Ljava/lang/String;
move-result-object v1
const/16 v2, 0x133
const-string v3, "GET"
const/4 v4, 0x0
if-eq v0, v2, :cond_c
const/16 v2, 0x134
if-eq v0, v2, :cond_c
const/16 v2, 0x191
if-eq v0, v2, :cond_b
const/16 v2, 0x1f7
if-eq v0, v2, :cond_8
const/16 v2, 0x197
if-eq v0, v2, :cond_5
const/16 p2, 0x198
if-eq v0, p2, :cond_0
packed-switch v0, :pswitch_data_0
return-object v4
:cond_0
iget-object v0, p0, Lokhttp3/internal/http/RetryAndFollowUpInterceptor;->client:Lokhttp3/OkHttpClient;
.line 288
invoke-virtual {v0}, Lokhttp3/OkHttpClient;->retryOnConnectionFailure()Z
move-result v0
if-nez v0, :cond_1
return-object v4
.line 293
:cond_1
invoke-virtual {p1}, Lokhttp3/Response;->request()Lokhttp3/Request;
move-result-object v0
invoke-virtual {v0}, Lokhttp3/Request;->body()Lokhttp3/RequestBody;
move-result-object v0
if-eqz v0, :cond_2
.line 294
invoke-virtual {v0}, Lokhttp3/RequestBody;->isOneShot()Z
move-result v0
if-eqz v0, :cond_2
return-object v4
.line 298
:cond_2
invoke-virtual {p1}, Lokhttp3/Response;->priorResponse()Lokhttp3/Response;
move-result-object v0
if-eqz v0, :cond_3
.line 299
invoke-virtual {p1}, Lokhttp3/Response;->priorResponse()Lokhttp3/Response;
move-result-object v0
invoke-virtual {v0}, Lokhttp3/Response;->code()I
move-result v0
if-ne v0, p2, :cond_3
return-object v4
:cond_3
const/4 p2, 0x0
.line 304
invoke-virtual {p0, p1, p2}, Lokhttp3/internal/http/RetryAndFollowUpInterceptor;->retryAfter(Lokhttp3/Response;I)I
move-result p2
if-lez p2, :cond_4
return-object v4
.line 308
:cond_4
invoke-virtual {p1}, Lokhttp3/Response;->request()Lokhttp3/Request;
move-result-object p1
return-object p1
:cond_5
if-eqz p2, :cond_6
.line 222
invoke-virtual {p2}, Lokhttp3/Route;->proxy()Ljava/net/Proxy;
move-result-object v0
goto :goto_0
:cond_6
iget-object v0, p0, Lokhttp3/internal/http/RetryAndFollowUpInterceptor;->client:Lokhttp3/OkHttpClient;
.line 223
invoke-virtual {v0}, Lokhttp3/OkHttpClient;->proxy()Ljava/net/Proxy;
move-result-object v0
.line 224
:goto_0
invoke-virtual {v0}, Ljava/net/Proxy;->type()Ljava/net/Proxy$Type;
move-result-object v0
sget-object v1, Ljava/net/Proxy$Type;->HTTP:Ljava/net/Proxy$Type;
if-ne v0, v1, :cond_7
iget-object v0, p0, Lokhttp3/internal/http/RetryAndFollowUpInterceptor;->client:Lokhttp3/OkHttpClient;
.line 227
invoke-virtual {v0}, Lokhttp3/OkHttpClient;->proxyAuthenticator()Lokhttp3/Authenticator;
move-result-object v0
invoke-interface {v0, p2, p1}, Lokhttp3/Authenticator;->authenticate(Lokhttp3/Route;Lokhttp3/Response;)Lokhttp3/Request;
move-result-object p1
return-object p1
.line 225
:cond_7
new-instance p1, Ljava/net/ProtocolException;
const-string p2, "Received HTTP_PROXY_AUTH (407) code while not using proxy"
invoke-direct {p1, p2}, Ljava/net/ProtocolException;-><init>(Ljava/lang/String;)V
throw p1
.line 311
:cond_8
invoke-virtual {p1}, Lokhttp3/Response;->priorResponse()Lokhttp3/Response;
move-result-object p2
if-eqz p2, :cond_9
.line 312
invoke-virtual {p1}, Lokhttp3/Response;->priorResponse()Lokhttp3/Response;
move-result-object p2
invoke-virtual {p2}, Lokhttp3/Response;->code()I
move-result p2
if-ne p2, v2, :cond_9
return-object v4
:cond_9
const p2, 0x7fffffff
.line 317
invoke-virtual {p0, p1, p2}, Lokhttp3/internal/http/RetryAndFollowUpInterceptor;->retryAfter(Lokhttp3/Response;I)I
move-result p2
if-nez p2, :cond_a
.line 319
invoke-virtual {p1}, Lokhttp3/Response;->request()Lokhttp3/Request;
move-result-object p1
return-object p1
:cond_a
return-object v4
:cond_b
iget-object v0, p0, Lokhttp3/internal/http/RetryAndFollowUpInterceptor;->client:Lokhttp3/OkHttpClient;
.line 230
invoke-virtual {v0}, Lokhttp3/OkHttpClient;->authenticator()Lokhttp3/Authenticator;
move-result-object v0
invoke-interface {v0, p2, p1}, Lokhttp3/Authenticator;->authenticate(Lokhttp3/Route;Lokhttp3/Response;)Lokhttp3/Request;
move-result-object p1
return-object p1
.line 236
:cond_c
invoke-virtual {v1, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p2
if-nez p2, :cond_d
const-string p2, "HEAD"
invoke-virtual {v1, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p2
if-nez p2, :cond_d
return-object v4
:cond_d
:pswitch_0
iget-object p2, p0, Lokhttp3/internal/http/RetryAndFollowUpInterceptor;->client:Lokhttp3/OkHttpClient;
.line 245
invoke-virtual {p2}, Lokhttp3/OkHttpClient;->followRedirects()Z
move-result p2
if-nez p2, :cond_e
return-object v4
:cond_e
const-string p2, "Location"
.line 247
invoke-virtual {p1, p2}, Lokhttp3/Response;->header(Ljava/lang/String;)Ljava/lang/String;
move-result-object p2
if-nez p2, :cond_f
return-object v4
.line 249
:cond_f
invoke-virtual {p1}, Lokhttp3/Response;->request()Lokhttp3/Request;
move-result-object v0
invoke-virtual {v0}, Lokhttp3/Request;->url()Lokhttp3/HttpUrl;
move-result-object v0
invoke-virtual {v0, p2}, Lokhttp3/HttpUrl;->resolve(Ljava/lang/String;)Lokhttp3/HttpUrl;
move-result-object p2
if-nez p2, :cond_10
return-object v4
.line 255
:cond_10
invoke-virtual {p2}, Lokhttp3/HttpUrl;->scheme()Ljava/lang/String;
move-result-object v0
invoke-virtual {p1}, Lokhttp3/Response;->request()Lokhttp3/Request;
move-result-object v2
invoke-virtual {v2}, Lokhttp3/Request;->url()Lokhttp3/HttpUrl;
move-result-object v2
invoke-virtual {v2}, Lokhttp3/HttpUrl;->scheme()Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_11
iget-object v0, p0, Lokhttp3/internal/http/RetryAndFollowUpInterceptor;->client:Lokhttp3/OkHttpClient;
.line 256
invoke-virtual {v0}, Lokhttp3/OkHttpClient;->followSslRedirects()Z
move-result v0
if-nez v0, :cond_11
return-object v4
.line 259
:cond_11
invoke-virtual {p1}, Lokhttp3/Response;->request()Lokhttp3/Request;
move-result-object v0
invoke-virtual {v0}, Lokhttp3/Request;->newBuilder()Lokhttp3/Request$Builder;
move-result-object v0
.line 260
invoke-static {v1}, Lokhttp3/internal/http/HttpMethod;->permitsRequestBody(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_14
.line 261
invoke-static {v1}, Lokhttp3/internal/http/HttpMethod;->redirectsWithBody(Ljava/lang/String;)Z
move-result v2
.line 262
invoke-static {v1}, Lokhttp3/internal/http/HttpMethod;->redirectsToGet(Ljava/lang/String;)Z
move-result v5
if-eqz v5, :cond_12
.line 263
invoke-virtual {v0, v3, v4}, Lokhttp3/Request$Builder;->method(Ljava/lang/String;Lokhttp3/RequestBody;)Lokhttp3/Request$Builder;
goto :goto_1
:cond_12
if-eqz v2, :cond_13
.line 265
invoke-virtual {p1}, Lokhttp3/Response;->request()Lokhttp3/Request;
move-result-object v3
invoke-virtual {v3}, Lokhttp3/Request;->body()Lokhttp3/RequestBody;
move-result-object v4
.line 266
:cond_13
invoke-virtual {v0, v1, v4}, Lokhttp3/Request$Builder;->method(Ljava/lang/String;Lokhttp3/RequestBody;)Lokhttp3/Request$Builder;
:goto_1
if-nez v2, :cond_14
const-string v1, "Transfer-Encoding"
.line 269
invoke-virtual {v0, v1}, Lokhttp3/Request$Builder;->removeHeader(Ljava/lang/String;)Lokhttp3/Request$Builder;
const-string v1, "Content-Length"
.line 270
invoke-virtual {v0, v1}, Lokhttp3/Request$Builder;->removeHeader(Ljava/lang/String;)Lokhttp3/Request$Builder;
const-string v1, "Content-Type"
.line 271
invoke-virtual {v0, v1}, Lokhttp3/Request$Builder;->removeHeader(Ljava/lang/String;)Lokhttp3/Request$Builder;
.line 278
:cond_14
invoke-virtual {p1}, Lokhttp3/Response;->request()Lokhttp3/Request;
move-result-object p1
invoke-virtual {p1}, Lokhttp3/Request;->url()Lokhttp3/HttpUrl;
move-result-object p1
invoke-static {p1, p2}, Lokhttp3/internal/Util;->sameConnection(Lokhttp3/HttpUrl;Lokhttp3/HttpUrl;)Z
move-result p1
if-nez p1, :cond_15
const-string p1, "Authorization"
.line 279
invoke-virtual {v0, p1}, Lokhttp3/Request$Builder;->removeHeader(Ljava/lang/String;)Lokhttp3/Request$Builder;
.line 282
:cond_15
invoke-virtual {v0, p2}, Lokhttp3/Request$Builder;->url(Lokhttp3/HttpUrl;)Lokhttp3/Request$Builder;
move-result-object p1
invoke-virtual {p1}, Lokhttp3/Request$Builder;->build()Lokhttp3/Request;
move-result-object p1
return-object p1
.line 215
:cond_16
new-instance p1, Ljava/lang/IllegalStateException;
invoke-direct {p1}, Ljava/lang/IllegalStateException;-><init>()V
throw p1
nop
:pswitch_data_0
.packed-switch 0x12c
:pswitch_0
:pswitch_0
:pswitch_0
:pswitch_0
.end packed-switch
.end method
.method public intercept(Lokhttp3/Interceptor$Chain;)Lokhttp3/Response;
.locals 8
.line 72
invoke-interface {p1}, Lokhttp3/Interceptor$Chain;->request()Lokhttp3/Request;
move-result-object v0
.line 73
check-cast p1, Lokhttp3/internal/http/RealInterceptorChain;
.line 74
invoke-virtual {p1}, Lokhttp3/internal/http/RealInterceptorChain;->transmitter()Lokhttp3/internal/connection/Transmitter;
move-result-object v1
const/4 v2, 0x0
const/4 v3, 0x0
move v5, v2
move-object v4, v3
.line 79
:goto_0
invoke-virtual {v1, v0}, Lokhttp3/internal/connection/Transmitter;->prepareToConnect(Lokhttp3/Request;)V
.line 81
invoke-virtual {v1}, Lokhttp3/internal/connection/Transmitter;->isCanceled()Z
move-result v6
if-nez v6, :cond_9
.line 88
:try_start_0
invoke-virtual {p1, v0, v1, v3}, Lokhttp3/internal/http/RealInterceptorChain;->proceed(Lokhttp3/Request;Lokhttp3/internal/connection/Transmitter;Lokhttp3/internal/connection/Exchange;)Lokhttp3/Response;
move-result-object v0
:try_end_0
.catch Lokhttp3/internal/connection/RouteException; {:try_start_0 .. :try_end_0} :catch_1
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
if-eqz v4, :cond_0
.line 110
invoke-virtual {v0}, Lokhttp3/Response;->newBuilder()Lokhttp3/Response$Builder;
move-result-object v0
.line 111
invoke-virtual {v4}, Lokhttp3/Response;->newBuilder()Lokhttp3/Response$Builder;
move-result-object v4
.line 112
invoke-virtual {v4, v3}, Lokhttp3/Response$Builder;->body(Lokhttp3/ResponseBody;)Lokhttp3/Response$Builder;
move-result-object v4
.line 113
invoke-virtual {v4}, Lokhttp3/Response$Builder;->build()Lokhttp3/Response;
move-result-object v4
.line 111
invoke-virtual {v0, v4}, Lokhttp3/Response$Builder;->priorResponse(Lokhttp3/Response;)Lokhttp3/Response$Builder;
move-result-object v0
.line 114
invoke-virtual {v0}, Lokhttp3/Response$Builder;->build()Lokhttp3/Response;
move-result-object v0
:cond_0
move-object v4, v0
sget-object v0, Lokhttp3/internal/Internal;->instance:Lokhttp3/internal/Internal;
.line 117
invoke-virtual {v0, v4}, Lokhttp3/internal/Internal;->exchange(Lokhttp3/Response;)Lokhttp3/internal/connection/Exchange;
move-result-object v0
if-eqz v0, :cond_1
.line 118
invoke-virtual {v0}, Lokhttp3/internal/connection/Exchange;->connection()Lokhttp3/internal/connection/RealConnection;
move-result-object v6
invoke-virtual {v6}, Lokhttp3/internal/connection/RealConnection;->route()Lokhttp3/Route;
move-result-object v6
goto :goto_1
:cond_1
move-object v6, v3
.line 119
:goto_1
invoke-virtual {p0, v4, v6}, Lokhttp3/internal/http/RetryAndFollowUpInterceptor;->followUpRequest(Lokhttp3/Response;Lokhttp3/Route;)Lokhttp3/Request;
move-result-object v6
if-nez v6, :cond_3
if-eqz v0, :cond_2
.line 122
invoke-virtual {v0}, Lokhttp3/internal/connection/Exchange;->isDuplex()Z
move-result p1
if-eqz p1, :cond_2
.line 123
invoke-virtual {v1}, Lokhttp3/internal/connection/Transmitter;->timeoutEarlyExit()V
:cond_2
return-object v4
.line 128
:cond_3
invoke-virtual {v6}, Lokhttp3/Request;->body()Lokhttp3/RequestBody;
move-result-object v7
if-eqz v7, :cond_4
.line 129
invoke-virtual {v7}, Lokhttp3/RequestBody;->isOneShot()Z
move-result v7
if-eqz v7, :cond_4
return-object v4
.line 133
:cond_4
invoke-virtual {v4}, Lokhttp3/Response;->body()Lokhttp3/ResponseBody;
move-result-object v7
invoke-static {v7}, Lokhttp3/internal/Util;->closeQuietly(Ljava/io/Closeable;)V
.line 134
invoke-virtual {v1}, Lokhttp3/internal/connection/Transmitter;->hasExchange()Z
move-result v7
if-eqz v7, :cond_5
.line 135
invoke-virtual {v0}, Lokhttp3/internal/connection/Exchange;->detachWithViolence()V
:cond_5
add-int/lit8 v5, v5, 0x1
const/16 v0, 0x14
if-gt v5, v0, :cond_6
move-object v0, v6
goto :goto_0
.line 139
:cond_6
new-instance p1, Ljava/net/ProtocolException;
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Too many follow-up requests: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {p1, v0}, Ljava/net/ProtocolException;-><init>(Ljava/lang/String;)V
throw p1
:catchall_0
move-exception p1
goto :goto_3
:catch_0
move-exception v6
.line 98
:try_start_1
instance-of v7, v6, Lokhttp3/internal/http2/ConnectionShutdownException;
xor-int/lit8 v7, v7, 0x1
.line 99
invoke-virtual {p0, v6, v1, v7, v0}, Lokhttp3/internal/http/RetryAndFollowUpInterceptor;->recover(Ljava/io/IOException;Lokhttp3/internal/connection/Transmitter;ZLokhttp3/Request;)Z
move-result v7
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
if-eqz v7, :cond_7
.line 104
:goto_2
invoke-virtual {v1}, Lokhttp3/internal/connection/Transmitter;->exchangeDoneDueToException()V
goto/16 :goto_0
.line 99
:cond_7
:try_start_2
throw v6
:catch_1
move-exception v6
.line 92
invoke-virtual {v6}, Lokhttp3/internal/connection/RouteException;->getLastConnectException()Ljava/io/IOException;
move-result-object v7
invoke-virtual {p0, v7, v1, v2, v0}, Lokhttp3/internal/http/RetryAndFollowUpInterceptor;->recover(Ljava/io/IOException;Lokhttp3/internal/connection/Transmitter;ZLokhttp3/Request;)Z
move-result v7
if-eqz v7, :cond_8
goto :goto_2
.line 93
:cond_8
invoke-virtual {v6}, Lokhttp3/internal/connection/RouteException;->getFirstConnectException()Ljava/io/IOException;
move-result-object p1
throw p1
:try_end_2
.catchall {:try_start_2 .. :try_end_2} :catchall_0
.line 104
:goto_3
invoke-virtual {v1}, Lokhttp3/internal/connection/Transmitter;->exchangeDoneDueToException()V
throw p1
.line 82
:cond_9
new-instance p1, Ljava/io/IOException;
const-string v0, "Canceled"
invoke-direct {p1, v0}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public final isRecoverable(Ljava/io/IOException;Z)Z
.locals 3
.line 179
instance-of v0, p1, Ljava/net/ProtocolException;
const/4 v1, 0x0
if-eqz v0, :cond_0
return v1
.line 185
:cond_0
instance-of v0, p1, Ljava/io/InterruptedIOException;
const/4 v2, 0x1
if-eqz v0, :cond_2
.line 186
instance-of p1, p1, Ljava/net/SocketTimeoutException;
if-eqz p1, :cond_1
if-nez p2, :cond_1
move v1, v2
:cond_1
return v1
.line 191
:cond_2
instance-of p2, p1, Ljavax/net/ssl/SSLHandshakeException;
if-eqz p2, :cond_3
.line 194
invoke-virtual {p1}, Ljava/lang/Throwable;->getCause()Ljava/lang/Throwable;
move-result-object p2
instance-of p2, p2, Ljava/security/cert/CertificateException;
if-eqz p2, :cond_3
return v1
.line 198
:cond_3
instance-of p1, p1, Ljavax/net/ssl/SSLPeerUnverifiedException;
if-eqz p1, :cond_4
return v1
:cond_4
return v2
.end method
.method public final recover(Ljava/io/IOException;Lokhttp3/internal/connection/Transmitter;ZLokhttp3/Request;)Z
.locals 2
iget-object v0, p0, Lokhttp3/internal/http/RetryAndFollowUpInterceptor;->client:Lokhttp3/OkHttpClient;
.line 156
invoke-virtual {v0}, Lokhttp3/OkHttpClient;->retryOnConnectionFailure()Z
move-result v0
const/4 v1, 0x0
if-nez v0, :cond_0
return v1
:cond_0
if-eqz p3, :cond_1
.line 159
invoke-virtual {p0, p1, p4}, Lokhttp3/internal/http/RetryAndFollowUpInterceptor;->requestIsOneShot(Ljava/io/IOException;Lokhttp3/Request;)Z
move-result p4
if-eqz p4, :cond_1
return v1
.line 162
:cond_1
invoke-virtual {p0, p1, p3}, Lokhttp3/internal/http/RetryAndFollowUpInterceptor;->isRecoverable(Ljava/io/IOException;Z)Z
move-result p1
if-nez p1, :cond_2
return v1
.line 165
:cond_2
invoke-virtual {p2}, Lokhttp3/internal/connection/Transmitter;->canRetry()Z
move-result p1
if-nez p1, :cond_3
return v1
:cond_3
const/4 p1, 0x1
return p1
.end method
.method public final requestIsOneShot(Ljava/io/IOException;Lokhttp3/Request;)Z
.locals 0
.line 172
invoke-virtual {p2}, Lokhttp3/Request;->body()Lokhttp3/RequestBody;
move-result-object p2
if-eqz p2, :cond_0
.line 173
invoke-virtual {p2}, Lokhttp3/RequestBody;->isOneShot()Z
move-result p2
if-nez p2, :cond_1
:cond_0
instance-of p1, p1, Ljava/io/FileNotFoundException;
if-eqz p1, :cond_2
:cond_1
const/4 p1, 0x1
goto :goto_0
:cond_2
const/4 p1, 0x0
:goto_0
return p1
.end method
.method public final retryAfter(Lokhttp3/Response;I)I
.locals 1
const-string v0, "Retry-After"
.line 330
invoke-virtual {p1, v0}, Lokhttp3/Response;->header(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
if-nez p1, :cond_0
return p2
:cond_0
const-string p2, "\\d+"
.line 338
invoke-virtual {p1, p2}, Ljava/lang/String;->matches(Ljava/lang/String;)Z
move-result p2
if-eqz p2, :cond_1
.line 339
invoke-static {p1}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;
move-result-object p1
invoke-virtual {p1}, Ljava/lang/Integer;->intValue()I
move-result p1
return p1
:cond_1
const p1, 0x7fffffff
return p1
.end method

View File

@@ -0,0 +1,337 @@
.class public final Lokhttp3/internal/http/StatusLine;
.super Ljava/lang/Object;
.source "SourceFile"
# instance fields
.field public final code:I
.field public final message:Ljava/lang/String;
.field public final protocol:Lokhttp3/Protocol;
# direct methods
.method public constructor <init>(Lokhttp3/Protocol;ILjava/lang/String;)V
.locals 0
.line 34
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lokhttp3/internal/http/StatusLine;->protocol:Lokhttp3/Protocol;
iput p2, p0, Lokhttp3/internal/http/StatusLine;->code:I
iput-object p3, p0, Lokhttp3/internal/http/StatusLine;->message:Ljava/lang/String;
return-void
.end method
.method public static parse(Ljava/lang/String;)Lokhttp3/internal/http/StatusLine;
.locals 8
const-string v0, "HTTP/1."
.line 51
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
const/4 v1, 0x4
const/16 v2, 0x20
const-string v3, "Unexpected status line: "
if-eqz v0, :cond_3
.line 52
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
const/16 v4, 0x9
if-lt v0, v4, :cond_2
const/16 v0, 0x8
invoke-virtual {p0, v0}, Ljava/lang/String;->charAt(I)C
move-result v0
if-ne v0, v2, :cond_2
const/4 v0, 0x7
.line 55
invoke-virtual {p0, v0}, Ljava/lang/String;->charAt(I)C
move-result v0
add-int/lit8 v0, v0, -0x30
if-nez v0, :cond_0
.line 58
sget-object v0, Lokhttp3/Protocol;->HTTP_1_0:Lokhttp3/Protocol;
goto :goto_0
:cond_0
const/4 v5, 0x1
if-ne v0, v5, :cond_1
.line 60
sget-object v0, Lokhttp3/Protocol;->HTTP_1_1:Lokhttp3/Protocol;
goto :goto_0
.line 62
:cond_1
new-instance v0, Ljava/net/ProtocolException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Ljava/net/ProtocolException;-><init>(Ljava/lang/String;)V
throw v0
.line 53
:cond_2
new-instance v0, Ljava/net/ProtocolException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Ljava/net/ProtocolException;-><init>(Ljava/lang/String;)V
throw v0
:cond_3
const-string v0, "ICY "
.line 64
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_7
.line 66
sget-object v0, Lokhttp3/Protocol;->HTTP_1_0:Lokhttp3/Protocol;
move v4, v1
.line 73
:goto_0
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v5
add-int/lit8 v6, v4, 0x3
if-lt v5, v6, :cond_6
.line 78
:try_start_0
invoke-virtual {p0, v4, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v5
invoke-static {v5}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v5
:try_end_0
.catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0
.line 86
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v7
if-le v7, v6, :cond_5
.line 87
invoke-virtual {p0, v6}, Ljava/lang/String;->charAt(I)C
move-result v6
if-ne v6, v2, :cond_4
add-int/2addr v4, v1
.line 90
invoke-virtual {p0, v4}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object p0
goto :goto_1
.line 88
:cond_4
new-instance v0, Ljava/net/ProtocolException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Ljava/net/ProtocolException;-><init>(Ljava/lang/String;)V
throw v0
:cond_5
const-string p0, ""
.line 93
:goto_1
new-instance v1, Lokhttp3/internal/http/StatusLine;
invoke-direct {v1, v0, v5, p0}, Lokhttp3/internal/http/StatusLine;-><init>(Lokhttp3/Protocol;ILjava/lang/String;)V
return-object v1
.line 80
:catch_0
new-instance v0, Ljava/net/ProtocolException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Ljava/net/ProtocolException;-><init>(Ljava/lang/String;)V
throw v0
.line 74
:cond_6
new-instance v0, Ljava/net/ProtocolException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Ljava/net/ProtocolException;-><init>(Ljava/lang/String;)V
throw v0
.line 69
:cond_7
new-instance v0, Ljava/net/ProtocolException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Ljava/net/ProtocolException;-><init>(Ljava/lang/String;)V
throw v0
.end method
# virtual methods
.method public toString()Ljava/lang/String;
.locals 3
.line 97
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
iget-object v1, p0, Lokhttp3/internal/http/StatusLine;->protocol:Lokhttp3/Protocol;
.line 98
sget-object v2, Lokhttp3/Protocol;->HTTP_1_0:Lokhttp3/Protocol;
if-ne v1, v2, :cond_0
const-string v1, "HTTP/1.0"
goto :goto_0
:cond_0
const-string v1, "HTTP/1.1"
:goto_0
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const/16 v1, 0x20
.line 99
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
iget v2, p0, Lokhttp3/internal/http/StatusLine;->code:I
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
iget-object v2, p0, Lokhttp3/internal/http/StatusLine;->message:Ljava/lang/String;
if-eqz v2, :cond_1
.line 101
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
iget-object v1, p0, Lokhttp3/internal/http/StatusLine;->message:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 103
:cond_1
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method