a.smali
.class public final Ll0/a;
.super Ljava/lang/Object;
.source "NetProcessInterceptor.kt"
# interfaces
.implements Lokhttp3/Interceptor;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Ll0/a$a;
}
.end annotation
.annotation runtime Lkotlin/Metadata;
bv = {
0x1,
0x0,
0x3
}
d1 = {
"\u0000J\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0008\u0002\n\u0002\u0010\u000e\n\u0000\n\u0002\u0018\u0002\n\u0002\u0008\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0008\u0002\u0008\u0000\u0018\u0000 \u00172\u00020\u0001:\u0001\u0017B\u0015\u0012\u0006\u0010\u0002\u001a\u00020\u0003\u0012\u0006\u0010\u0004\u001a\u00020\u0005\u00a2\u0006\u0002\u0010\u0006J\u0014\u0010\u0007\u001a\u0004\u0018\u00010\u00082\u0008\u0010\t\u001a\u0004\u0018\u00010\nH\u0002J\u0010\u0010\u000b\u001a\u00020\n2\u0006\u0010\u000c\u001a\u00020\rH\u0016J\u0012\u0010\u000e\u001a\u0004\u0018\u00010\u000f2\u0006\u0010\t\u001a\u00020\nH\u0002J*\u0010\u0010\u001a\u00020\u00112\u0006\u0010\u0012\u001a\u00020\u00132\u0008\u0010\t\u001a\u0004\u0018\u00010\n2\u000e\u0010\u0014\u001a\n\u0018\u00010\u0015j\u0004\u0018\u0001`\u0016H\u0002R\u000e\u0010\u0002\u001a\u00020\u0003X\u0082\u0004\u00a2\u0006\u0002\n\u0000R\u000e\u0010\u0004\u001a\u00020\u0005X\u0082\u0004\u00a2\u0006\u0002\n\u0000\u00a8\u0006\u0018"
}
d2 = {
"Lcom/argusapm/android/okhttp3/process/NetProcessInterceptor;",
"Lokhttp3/Interceptor;",
"processManager",
"Lcom/argusapm/android/okhttp3/process/NetProcessManager;",
"returnCodeParser",
"Lcom/shopee/hamster/base/apm/api/net/IReturnCodeParser;",
"(Lcom/argusapm/android/okhttp3/process/NetProcessManager;Lcom/shopee/hamster/base/apm/api/net/IReturnCodeParser;)V",
"decodeResponse",
"",
"response",
"Lokhttp3/Response;",
"intercept",
"chain",
"Lokhttp3/Interceptor$Chain;",
"peekBodySafely",
"Lokhttp3/ResponseBody;",
"record",
"",
"call",
"Lokhttp3/Call;",
"exception",
"Ljava/lang/Exception;",
"Lkotlin/Exception;",
"Companion",
"hamster-okhttp_release"
}
k = 0x1
mv = {
0x1,
0x4,
0x2
}
.end annotation
# instance fields
.field public final a:Ll0/b;
.field public final b:Lcom/shopee/hamster/base/apm/api/net/IReturnCodeParser;
# direct methods
.method public static constructor <clinit>()V
.registers 2
new-instance v0, Ll0/a$a;
const/4 v1, 0x0
invoke-direct {v0, v1}, Ll0/a$a;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
return-void
.end method
.method public constructor <init>(Ll0/b;Lcom/shopee/hamster/base/apm/api/net/IReturnCodeParser;)V
.registers 4
const-string v0, "processManager"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "returnCodeParser"
invoke-static {p2, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Ll0/a;->a:Ll0/b;
iput-object p2, p0, Ll0/a;->b:Lcom/shopee/hamster/base/apm/api/net/IReturnCodeParser;
return-void
.end method
.method public static final synthetic a(Ll0/a;)Lcom/shopee/hamster/base/apm/api/net/IReturnCodeParser;
.registers 1
iget-object p0, p0, Ll0/a;->b:Lcom/shopee/hamster/base/apm/api/net/IReturnCodeParser;
return-object p0
.end method
# virtual methods
.method public final a(Lokhttp3/Response;)Ljava/lang/String;
.registers 7
const-class v0, Lcom/argusapm/android/okhttp3/adapter/IOkHttpAdapter;
const/4 v1, 0x0
if-eqz p1, :cond_77
invoke-static {v0}, Ltb/b;->b(Ljava/lang/Class;)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/argusapm/android/okhttp3/adapter/IOkHttpAdapter;
if-eqz v2, :cond_77
invoke-interface {v2, p1}, Lcom/argusapm/android/okhttp3/adapter/IOkHttpAdapter;->body(Lokhttp3/Response;)Lokhttp3/ResponseBody;
move-result-object v2
if-eqz v2, :cond_77
invoke-static {v0}, Ltb/b;->b(Ljava/lang/Class;)Ljava/lang/Object;
move-result-object v3
check-cast v3, Lcom/argusapm/android/okhttp3/adapter/IOkHttpAdapter;
if-eqz v3, :cond_24
invoke-virtual {v2}, Lokhttp3/ResponseBody;->contentType()Lokhttp3/MediaType;
move-result-object v4
invoke-interface {v3, v4}, Lcom/argusapm/android/okhttp3/adapter/IOkHttpAdapter;->type(Lokhttp3/MediaType;)Ljava/lang/String;
move-result-object v3
goto :goto_25
:cond_24
move-object v3, v1
:goto_25
invoke-static {v0}, Ltb/b;->b(Ljava/lang/Class;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/argusapm/android/okhttp3/adapter/IOkHttpAdapter;
if-eqz v0, :cond_36
invoke-virtual {v2}, Lokhttp3/ResponseBody;->contentType()Lokhttp3/MediaType;
move-result-object v2
invoke-interface {v0, v2}, Lcom/argusapm/android/okhttp3/adapter/IOkHttpAdapter;->subType(Lokhttp3/MediaType;)Ljava/lang/String;
move-result-object v0
goto :goto_37
:cond_36
move-object v0, v1
:goto_37
const/4 v2, 0x1
const-string v4, "application"
invoke-static {v4, v3, v2}, Lkotlin/text/StringsKt__StringsJVMKt;->equals(Ljava/lang/String;Ljava/lang/String;Z)Z
move-result v4
if-eqz v4, :cond_58
const-string v4, "json"
invoke-static {v4, v0, v2}, Lkotlin/text/StringsKt__StringsJVMKt;->equals(Ljava/lang/String;Ljava/lang/String;Z)Z
move-result v2
if-nez v2, :cond_49
goto :goto_58
:cond_49
invoke-virtual {p0, p1}, Ll0/a;->b(Lokhttp3/Response;)Lokhttp3/ResponseBody;
move-result-object p1
if-eqz p1, :cond_57
:try_start_4f
invoke-virtual {p1}, Lokhttp3/ResponseBody;->source()Lokio/BufferedSource;
move-result-object p1
invoke-interface {p1}, Lokio/BufferedSource;->readUtf8()Ljava/lang/String;
move-result-object v1
:try_end_57
.catch Ljava/lang/Exception; {:try_start_4f .. :try_end_57} :catch_57
:catch_57
:cond_57
return-object v1
:cond_58
:goto_58
new-instance p1, Ljava/lang/StringBuilder;
invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "[cancel parse by type:"
invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, " subType:"
invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const/16 v0, 0x5d
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
return-object p1
:cond_77
return-object v1
.end method
.method public final a(Lokhttp3/Call;Lokhttp3/Response;Ljava/lang/Exception;)V
.registers 14
const-class v0, Lcom/argusapm/android/okhttp3/adapter/IOkHttpAdapter;
invoke-interface {p1}, Lokhttp3/Call;->request()Lokhttp3/Request;
move-result-object v1
const-string v2, "call.request()"
invoke-static {v1, v2}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
iget-object v2, p0, Ll0/a;->a:Ll0/b;
invoke-virtual {v2, p1}, Ll0/b;->a(Lokhttp3/Call;)Lcom/shopee/hamster/net/process/NetProcessInfo;
move-result-object p1
if-eqz p1, :cond_d3
invoke-static {v0}, Ltb/b;->b(Ljava/lang/Class;)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/argusapm/android/okhttp3/adapter/IOkHttpAdapter;
const/4 v3, 0x0
if-eqz v2, :cond_27
invoke-interface {v2, v1}, Lcom/argusapm/android/okhttp3/adapter/IOkHttpAdapter;->headers(Lokhttp3/Request;)Lokhttp3/Headers;
move-result-object v2
if-eqz v2, :cond_27
invoke-virtual {v2}, Lokhttp3/Headers;->toMultimap()Ljava/util/Map;
move-result-object v2
goto :goto_28
:cond_27
move-object v2, v3
:goto_28
invoke-virtual {p1, v2}, Lcom/shopee/hamster/net/process/NetProcessInfo;->setRequestHeader(Ljava/util/Map;)V
:try_start_2b
new-instance v2, Lokio/Buffer;
invoke-direct {v2}, Lokio/Buffer;-><init>()V
invoke-static {v0}, Ltb/b;->b(Ljava/lang/Class;)Ljava/lang/Object;
move-result-object v4
check-cast v4, Lcom/argusapm/android/okhttp3/adapter/IOkHttpAdapter;
if-eqz v4, :cond_41
invoke-interface {v4, v1}, Lcom/argusapm/android/okhttp3/adapter/IOkHttpAdapter;->body(Lokhttp3/Request;)Lokhttp3/RequestBody;
move-result-object v1
if-eqz v1, :cond_41
invoke-virtual {v1, v2}, Lokhttp3/RequestBody;->writeTo(Lokio/BufferedSink;)V
:cond_41
sget-object v1, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit;
invoke-virtual {v2}, Lokio/Buffer;->readUtf8()Ljava/lang/String;
move-result-object v1
:try_end_47
.catch Ljava/lang/Exception; {:try_start_2b .. :try_end_47} :catch_48
goto :goto_49
:catch_48
move-object v1, v3
:goto_49
invoke-virtual {p1, v1}, Lcom/shopee/hamster/net/process/NetProcessInfo;->setRequestBody(Ljava/lang/String;)V
if-eqz p2, :cond_63
invoke-static {v0}, Ltb/b;->b(Ljava/lang/Class;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/argusapm/android/okhttp3/adapter/IOkHttpAdapter;
if-eqz v0, :cond_5b
invoke-interface {v0, p2}, Lcom/argusapm/android/okhttp3/adapter/IOkHttpAdapter;->headers(Lokhttp3/Response;)Lokhttp3/Headers;
move-result-object v0
goto :goto_5c
:cond_5b
move-object v0, v3
:goto_5c
if-eqz v0, :cond_63
invoke-virtual {v0}, Lokhttp3/Headers;->toMultimap()Ljava/util/Map;
move-result-object v0
goto :goto_64
:cond_63
move-object v0, v3
:goto_64
invoke-virtual {p1, v0}, Lcom/shopee/hamster/net/process/NetProcessInfo;->setResponseHeader(Ljava/util/Map;)V
invoke-virtual {p0, p2}, Ll0/a;->a(Lokhttp3/Response;)Ljava/lang/String;
move-result-object p2
invoke-virtual {p1, p2}, Lcom/shopee/hamster/net/process/NetProcessInfo;->setResponseBody(Ljava/lang/String;)V
if-eqz p3, :cond_86
new-instance p2, Ljava/io/StringWriter;
invoke-direct {p2}, Ljava/io/StringWriter;-><init>()V
new-instance v0, Ljava/io/PrintWriter;
invoke-direct {v0, p2}, Ljava/io/PrintWriter;-><init>(Ljava/io/Writer;)V
invoke-virtual {p3, v0}, Ljava/lang/Exception;->printStackTrace(Ljava/io/PrintWriter;)V
sget-object v0, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit;
invoke-virtual {p2}, Ljava/io/StringWriter;->toString()Ljava/lang/String;
move-result-object p2
invoke-virtual {p1, p2}, Lcom/shopee/hamster/net/process/NetProcessInfo;->setExceptionStack(Ljava/lang/String;)V
:cond_86
sget-object p2, Lcom/shopee/hamster/netquality/NetQualityManager;->INSTANCE:Lcom/shopee/hamster/netquality/NetQualityManager;
invoke-virtual {p2}, Lcom/shopee/hamster/netquality/NetQualityManager;->getHasInit()Z
move-result v0
if-eqz v0, :cond_b4
invoke-virtual {p2}, Lcom/shopee/hamster/netquality/NetQualityManager;->getRequest()Lcom/shopee/hamster/netquality/request/NetRequestRecorder;
move-result-object p2
invoke-virtual {p1}, Lcom/shopee/hamster/net/process/NetProcessInfo;->getNetInfo()Lcom/shopee/hamster/base/apm/api/net/NetInfo;
move-result-object v0
invoke-virtual {v0}, Lcom/shopee/hamster/base/apm/api/net/NetInfo;->getUrl()Ljava/lang/String;
move-result-object v0
invoke-virtual {p1}, Lcom/shopee/hamster/net/process/NetProcessInfo;->getNetInfo()Lcom/shopee/hamster/base/apm/api/net/NetInfo;
move-result-object v1
invoke-virtual {v1}, Lcom/shopee/hamster/base/apm/api/net/NetInfo;->getDstIp()Ljava/lang/String;
move-result-object v1
if-eqz p3, :cond_af
sget-object v2, Lj0/a;->a:Lj0/a;
invoke-virtual {v2, p3}, Lj0/a;->b(Ljava/lang/Exception;)Z
move-result p3
if-nez p3, :cond_ad
goto :goto_af
:cond_ad
const/4 p3, 0x0
goto :goto_b0
:cond_af
:goto_af
const/4 p3, 0x1
:goto_b0
invoke-virtual {p2, v0, v1, p3}, Lcom/shopee/hamster/netquality/request/NetRequestRecorder;->feedbackRequestResult(Ljava/lang/String;Ljava/lang/String;Z)V
goto :goto_c1
:cond_b4
sget-object p2, Lcom/shopee/hamster/base/log/HamsterLog;->INSTANCE:Lcom/shopee/hamster/base/log/HamsterLog;
const-string p3, "call before init"
filled-new-array {p3}, [Ljava/lang/String;
move-result-object p3
const-string v0, "NetQualityManager"
invoke-virtual {p2, v0, p3}, Lcom/shopee/hamster/base/log/HamsterLog;->w(Ljava/lang/String;[Ljava/lang/String;)V
:goto_c1
invoke-virtual {p1}, Lcom/shopee/hamster/net/process/NetProcessInfo;->markParseCodeStart()V
sget-object v4, Lkotlinx/coroutines/GlobalScope;->INSTANCE:Lkotlinx/coroutines/GlobalScope;
sget-object v5, Lcom/shopee/hamster/base/thread/HamsterDispatcher;->IO:Lcom/shopee/hamster/base/thread/AThreadPool;
const/4 v6, 0x0
new-instance v7, Ll0/a$b;
invoke-direct {v7, p0, p1, v3}, Ll0/a$b;-><init>(Ll0/a;Lcom/shopee/hamster/net/process/NetProcessInfo;Lkotlin/coroutines/Continuation;)V
const/4 v8, 0x2
const/4 v9, 0x0
invoke-static/range {v4 .. v9}, Lkotlinx/coroutines/BuildersKt;->launch$default(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/Job;
:cond_d3
return-void
.end method
.method public final b(Lokhttp3/Response;)Lokhttp3/ResponseBody;
.registers 7
const-wide v0, 0x7fffffffffffffffL
:try_start_5
invoke-virtual {p1, v0, v1}, Lokhttp3/Response;->peekBody(J)Lokhttp3/ResponseBody;
move-result-object p1
:try_end_9
.catch Ljava/io/IOException; {:try_start_5 .. :try_end_9} :catch_a
goto :goto_2e
:catch_a
move-exception p1
sget-object v0, Lcom/shopee/hamster/base/log/HamsterLog;->INSTANCE:Lcom/shopee/hamster/base/log/HamsterLog;
const/4 v1, 0x1
new-array v1, v1, [Ljava/lang/String;
const/4 v2, 0x0
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "[copyResponseBody] error: "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/io/IOException;->getMessage()Ljava/lang/String;
move-result-object p1
invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
aput-object p1, v1, v2
const-string p1, "NetProcessInterceptor"
invoke-virtual {v0, p1, v1}, Lcom/shopee/hamster/base/log/HamsterLog;->e(Ljava/lang/String;[Ljava/lang/String;)V
const/4 p1, 0x0
:goto_2e
return-object p1
.end method
.method public intercept(Lokhttp3/Interceptor$Chain;)Lokhttp3/Response;
.registers 6
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
const-string v0, "call"
const-string v1, "chain"
invoke-static {p1, v1}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
invoke-interface {p1}, Lokhttp3/Interceptor$Chain;->call()Lokhttp3/Call;
move-result-object v1
const/4 v2, 0x0
:try_start_c
invoke-interface {p1}, Lokhttp3/Interceptor$Chain;->request()Lokhttp3/Request;
move-result-object v3
invoke-interface {p1, v3}, Lokhttp3/Interceptor$Chain;->proceed(Lokhttp3/Request;)Lokhttp3/Response;
move-result-object p1
invoke-static {v1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
invoke-virtual {p0, v1, p1, v2}, Ll0/a;->a(Lokhttp3/Call;Lokhttp3/Response;Ljava/lang/Exception;)V
:try_end_1a
.catch Ljava/lang/Exception; {:try_start_c .. :try_end_1a} :catch_20
const-string v0, "response"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
return-object p1
:catch_20
move-exception p1
invoke-static {v1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
invoke-virtual {p0, v1, v2, p1}, Ll0/a;->a(Lokhttp3/Call;Lokhttp3/Response;Ljava/lang/Exception;)V
throw p1
.end method