e.smali
.class public Lcom/bytedance/tea/crash/upload/e;
.super Ljava/lang/Object;
.source "MultipartUtility.java"
# instance fields
.field private final a:Ljava/lang/String;
.field private b:Ljava/net/HttpURLConnection;
.field private c:Ljava/lang/String;
.field private d:Z
.field private e:Ljava/io/DataOutputStream;
.field private f:Ljava/util/zip/GZIPOutputStream;
# direct methods
.method constructor <init>(Ljava/lang/String;Ljava/lang/String;Z)V
.registers 9
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
const/4 v4, 0x1
.line 36
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 37
iput-object p2, p0, Lcom/bytedance/tea/crash/upload/e;->c:Ljava/lang/String;
.line 38
iput-boolean p3, p0, Lcom/bytedance/tea/crash/upload/e;->d:Z
.line 40
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "AAA"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v2
invoke-virtual {v0, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "AAA"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
iput-object v0, p0, Lcom/bytedance/tea/crash/upload/e;->a:Ljava/lang/String;
.line 41
new-instance v0, Ljava/net/URL;
invoke-direct {v0, p1}, Ljava/net/URL;-><init>(Ljava/lang/String;)V
.line 42
invoke-virtual {v0}, Ljava/net/URL;->openConnection()Ljava/net/URLConnection;
move-result-object v0
check-cast v0, Ljava/net/HttpURLConnection;
iput-object v0, p0, Lcom/bytedance/tea/crash/upload/e;->b:Ljava/net/HttpURLConnection;
.line 43
iget-object v0, p0, Lcom/bytedance/tea/crash/upload/e;->b:Ljava/net/HttpURLConnection;
const/4 v1, 0x0
invoke-virtual {v0, v1}, Ljava/net/HttpURLConnection;->setUseCaches(Z)V
.line 44
iget-object v0, p0, Lcom/bytedance/tea/crash/upload/e;->b:Ljava/net/HttpURLConnection;
invoke-virtual {v0, v4}, Ljava/net/HttpURLConnection;->setDoOutput(Z)V
.line 45
iget-object v0, p0, Lcom/bytedance/tea/crash/upload/e;->b:Ljava/net/HttpURLConnection;
invoke-virtual {v0, v4}, Ljava/net/HttpURLConnection;->setDoInput(Z)V
.line 46
iget-object v0, p0, Lcom/bytedance/tea/crash/upload/e;->b:Ljava/net/HttpURLConnection;
const-string v1, "POST"
invoke-virtual {v0, v1}, Ljava/net/HttpURLConnection;->setRequestMethod(Ljava/lang/String;)V
.line 47
iget-object v0, p0, Lcom/bytedance/tea/crash/upload/e;->b:Ljava/net/HttpURLConnection;
const-string v1, "Content-Type"
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "multipart/form-data; boundary="
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
iget-object v3, p0, Lcom/bytedance/tea/crash/upload/e;->a:Ljava/lang/String;
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v1, v2}, Ljava/net/HttpURLConnection;->setRequestProperty(Ljava/lang/String;Ljava/lang/String;)V
.line 48
if-eqz p3, :cond_80
.line 49
iget-object v0, p0, Lcom/bytedance/tea/crash/upload/e;->b:Ljava/net/HttpURLConnection;
const-string v1, "Content-Encoding"
const-string v2, "gzip"
invoke-virtual {v0, v1, v2}, Ljava/net/HttpURLConnection;->setRequestProperty(Ljava/lang/String;Ljava/lang/String;)V
.line 50
new-instance v0, Ljava/util/zip/GZIPOutputStream;
iget-object v1, p0, Lcom/bytedance/tea/crash/upload/e;->b:Ljava/net/HttpURLConnection;
invoke-virtual {v1}, Ljava/net/HttpURLConnection;->getOutputStream()Ljava/io/OutputStream;
move-result-object v1
invoke-direct {v0, v1}, Ljava/util/zip/GZIPOutputStream;-><init>(Ljava/io/OutputStream;)V
iput-object v0, p0, Lcom/bytedance/tea/crash/upload/e;->f:Ljava/util/zip/GZIPOutputStream;
.line 54
:goto_7f
return-void
.line 52
:cond_80
new-instance v0, Ljava/io/DataOutputStream;
iget-object v1, p0, Lcom/bytedance/tea/crash/upload/e;->b:Ljava/net/HttpURLConnection;
invoke-virtual {v1}, Ljava/net/HttpURLConnection;->getOutputStream()Ljava/io/OutputStream;
move-result-object v1
invoke-direct {v0, v1}, Ljava/io/DataOutputStream;-><init>(Ljava/io/OutputStream;)V
iput-object v0, p0, Lcom/bytedance/tea/crash/upload/e;->e:Ljava/io/DataOutputStream;
goto :goto_7f
.end method
# virtual methods
.method public a()Ljava/lang/String;
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 184
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 185
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "\r\n--"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget-object v2, p0, Lcom/bytedance/tea/crash/upload/e;->a:Ljava/lang/String;
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, "--"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, "\r\n"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/String;->getBytes()[B
move-result-object v1
.line 186
iget-boolean v2, p0, Lcom/bytedance/tea/crash/upload/e;->d:Z
if-eqz v2, :cond_61
.line 187
iget-object v2, p0, Lcom/bytedance/tea/crash/upload/e;->f:Ljava/util/zip/GZIPOutputStream;
invoke-virtual {v2, v1}, Ljava/util/zip/GZIPOutputStream;->write([B)V
.line 188
iget-object v1, p0, Lcom/bytedance/tea/crash/upload/e;->f:Ljava/util/zip/GZIPOutputStream;
invoke-virtual {v1}, Ljava/util/zip/GZIPOutputStream;->finish()V
.line 189
iget-object v1, p0, Lcom/bytedance/tea/crash/upload/e;->f:Ljava/util/zip/GZIPOutputStream;
invoke-virtual {v1}, Ljava/util/zip/GZIPOutputStream;->close()V
.line 197
:goto_3d
iget-object v1, p0, Lcom/bytedance/tea/crash/upload/e;->b:Ljava/net/HttpURLConnection;
invoke-virtual {v1}, Ljava/net/HttpURLConnection;->getResponseCode()I
move-result v1
.line 198
const/16 v2, 0xc8
if-ne v1, v2, :cond_92
.line 199
new-instance v1, Ljava/io/BufferedReader;
new-instance v2, Ljava/io/InputStreamReader;
iget-object v3, p0, Lcom/bytedance/tea/crash/upload/e;->b:Ljava/net/HttpURLConnection;
invoke-virtual {v3}, Ljava/net/HttpURLConnection;->getInputStream()Ljava/io/InputStream;
move-result-object v3
invoke-direct {v2, v3}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;)V
invoke-direct {v1, v2}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;)V
.line 201
:goto_57
invoke-virtual {v1}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;
move-result-object v2
if-eqz v2, :cond_71
.line 202
invoke-interface {v0, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_57
.line 191
:cond_61
iget-object v2, p0, Lcom/bytedance/tea/crash/upload/e;->e:Ljava/io/DataOutputStream;
invoke-virtual {v2, v1}, Ljava/io/DataOutputStream;->write([B)V
.line 192
iget-object v1, p0, Lcom/bytedance/tea/crash/upload/e;->e:Ljava/io/DataOutputStream;
invoke-virtual {v1}, Ljava/io/DataOutputStream;->flush()V
.line 193
iget-object v1, p0, Lcom/bytedance/tea/crash/upload/e;->e:Ljava/io/DataOutputStream;
invoke-virtual {v1}, Ljava/io/DataOutputStream;->close()V
goto :goto_3d
.line 204
:cond_71
invoke-virtual {v1}, Ljava/io/BufferedReader;->close()V
.line 205
iget-object v1, p0, Lcom/bytedance/tea/crash/upload/e;->b:Ljava/net/HttpURLConnection;
invoke-virtual {v1}, Ljava/net/HttpURLConnection;->disconnect()V
.line 210
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
.line 211
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v2
:goto_82
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_ab
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
.line 212
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_82
.line 207
:cond_92
new-instance v0, Ljava/io/IOException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Server returned non-OK status: "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw v0
.line 215
:cond_ab
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public a(Ljava/lang/String;Ljava/io/File;)V
.registers 9
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
const/4 v5, 0x0
.line 89
invoke-virtual {p2}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v0
.line 90
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
.line 91
const-string v2, "--"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
iget-object v3, p0, Lcom/bytedance/tea/crash/upload/e;->a:Ljava/lang/String;
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, "\r\n"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, "Content-Disposition: form-data; name=\""
.line 92
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, "\"; filename=\""
.line 93
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
.line 94
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v2, "\""
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v2, "\r\n"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v2, "Content-Transfer-Encoding: binary"
.line 95
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v2, "\r\n"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v2, "\r\n"
.line 96
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 98
iget-boolean v0, p0, Lcom/bytedance/tea/crash/upload/e;->d:Z
if-eqz v0, :cond_78
.line 99
iget-object v0, p0, Lcom/bytedance/tea/crash/upload/e;->f:Ljava/util/zip/GZIPOutputStream;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->getBytes()[B
move-result-object v2
invoke-virtual {v0, v2}, Ljava/util/zip/GZIPOutputStream;->write([B)V
.line 104
:goto_5e
new-instance v0, Ljava/io/FileInputStream;
invoke-direct {v0, p2}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
.line 105
const/16 v2, 0x2000
new-array v2, v2, [B
.line 107
:goto_67
invoke-virtual {v0, v2}, Ljava/io/FileInputStream;->read([B)I
move-result v3
const/4 v4, -0x1
if-eq v3, v4, :cond_8c
.line 108
iget-boolean v4, p0, Lcom/bytedance/tea/crash/upload/e;->d:Z
if-eqz v4, :cond_86
.line 109
iget-object v4, p0, Lcom/bytedance/tea/crash/upload/e;->f:Ljava/util/zip/GZIPOutputStream;
invoke-virtual {v4, v2, v5, v3}, Ljava/util/zip/GZIPOutputStream;->write([BII)V
goto :goto_67
.line 101
:cond_78
iget-object v0, p0, Lcom/bytedance/tea/crash/upload/e;->e:Ljava/io/DataOutputStream;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->getBytes()[B
move-result-object v2
invoke-virtual {v0, v2}, Ljava/io/DataOutputStream;->write([B)V
goto :goto_5e
.line 111
:cond_86
iget-object v4, p0, Lcom/bytedance/tea/crash/upload/e;->e:Ljava/io/DataOutputStream;
invoke-virtual {v4, v2, v5, v3}, Ljava/io/DataOutputStream;->write([BII)V
goto :goto_67
.line 114
:cond_8c
invoke-virtual {v0}, Ljava/io/FileInputStream;->close()V
.line 115
iget-boolean v0, p0, Lcom/bytedance/tea/crash/upload/e;->d:Z
if-eqz v0, :cond_9f
.line 116
iget-object v0, p0, Lcom/bytedance/tea/crash/upload/e;->f:Ljava/util/zip/GZIPOutputStream;
const-string v1, "\r\n"
invoke-virtual {v1}, Ljava/lang/String;->getBytes()[B
move-result-object v1
invoke-virtual {v0, v1}, Ljava/util/zip/GZIPOutputStream;->write([B)V
.line 121
:goto_9e
return-void
.line 118
:cond_9f
iget-object v0, p0, Lcom/bytedance/tea/crash/upload/e;->e:Ljava/io/DataOutputStream;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/String;->getBytes()[B
move-result-object v1
invoke-virtual {v0, v1}, Ljava/io/DataOutputStream;->write([B)V
.line 119
iget-object v0, p0, Lcom/bytedance/tea/crash/upload/e;->e:Ljava/io/DataOutputStream;
invoke-virtual {v0}, Ljava/io/DataOutputStream;->flush()V
goto :goto_9e
.end method
.method public a(Ljava/lang/String;Ljava/lang/String;)V
.registers 6
.prologue
.line 63
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
.line 64
const-string v1, "--"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget-object v2, p0, Lcom/bytedance/tea/crash/upload/e;->a:Ljava/lang/String;
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, "\r\n"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, "Content-Disposition: form-data; name=\""
.line 65
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
.line 66
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, "\""
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, "\r\n"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, "Content-Type: text/plain; charset="
.line 67
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget-object v2, p0, Lcom/bytedance/tea/crash/upload/e;->c:Ljava/lang/String;
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, "\r\n"
.line 68
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, "\r\n"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
.line 69
invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, "\r\n"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 71
:try_start_4e
iget-boolean v1, p0, Lcom/bytedance/tea/crash/upload/e;->d:Z
if-eqz v1, :cond_60
.line 72
iget-object v1, p0, Lcom/bytedance/tea/crash/upload/e;->f:Ljava/util/zip/GZIPOutputStream;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/String;->getBytes()[B
move-result-object v0
invoke-virtual {v1, v0}, Ljava/util/zip/GZIPOutputStream;->write([B)V
.line 79
:goto_5f
return-void
.line 74
:cond_60
iget-object v1, p0, Lcom/bytedance/tea/crash/upload/e;->e:Ljava/io/DataOutputStream;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/String;->getBytes()[B
move-result-object v0
invoke-virtual {v1, v0}, Ljava/io/DataOutputStream;->write([B)V
:try_end_6d
.catch Ljava/io/IOException; {:try_start_4e .. :try_end_6d} :catch_6e
goto :goto_5f
.line 76
:catch_6e
move-exception v0
.line 77
invoke-virtual {v0}, Ljava/io/IOException;->printStackTrace()V
goto :goto_5f
.end method