378 lines
8.4 KiB
Smali
Raw Normal View History

2026-07-06 19:54:44 +08:00
.class public Lcom/lzy/okgo/utils/HeaderParser;
.super Ljava/lang/Object;
.source "HeaderParser.java"
# direct methods
.method public constructor <init>()V
.locals 0
.line 39
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static addCacheHeaders(Lcom/lzy/okgo/request/base/Request;Lcom/lzy/okgo/cache/CacheEntity;Lcom/lzy/okgo/cache/CacheMode;)V
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lcom/lzy/okgo/request/base/Request;",
"Lcom/lzy/okgo/cache/CacheEntity<",
"TT;>;",
"Lcom/lzy/okgo/cache/CacheMode;",
")V"
}
.end annotation
if-eqz p1, :cond_1
.line 139
sget-object v0, Lcom/lzy/okgo/cache/CacheMode;->DEFAULT:Lcom/lzy/okgo/cache/CacheMode;
if-ne p2, v0, :cond_1
.line 140
invoke-virtual {p1}, Lcom/lzy/okgo/cache/CacheEntity;->getResponseHeaders()Lcom/lzy/okgo/model/HttpHeaders;
move-result-object p1
if-eqz p1, :cond_1
const-string p2, "ETag"
.line 142
invoke-virtual {p1, p2}, Lcom/lzy/okgo/model/HttpHeaders;->get(Ljava/lang/String;)Ljava/lang/String;
move-result-object p2
if-eqz p2, :cond_0
const-string v0, "If-None-Match"
.line 143
invoke-virtual {p0, v0, p2}, Lcom/lzy/okgo/request/base/Request;->headers(Ljava/lang/String;Ljava/lang/String;)Lcom/lzy/okgo/request/base/Request;
:cond_0
const-string p2, "Last-Modified"
.line 144
invoke-virtual {p1, p2}, Lcom/lzy/okgo/model/HttpHeaders;->get(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
invoke-static {p1}, Lcom/lzy/okgo/model/HttpHeaders;->getLastModified(Ljava/lang/String;)J
move-result-wide p1
const-wide/16 v0, 0x0
cmp-long v0, p1, v0
if-lez v0, :cond_1
.line 145
invoke-static {p1, p2}, Lcom/lzy/okgo/model/HttpHeaders;->formatMillisToGMT(J)Ljava/lang/String;
move-result-object p1
const-string p2, "If-Modified-Since"
invoke-virtual {p0, p2, p1}, Lcom/lzy/okgo/request/base/Request;->headers(Ljava/lang/String;Ljava/lang/String;)Lcom/lzy/okgo/request/base/Request;
:cond_1
return-void
.end method
.method public static createCacheEntity(Lokhttp3/Headers;Ljava/lang/Object;Lcom/lzy/okgo/cache/CacheMode;Ljava/lang/String;)Lcom/lzy/okgo/cache/CacheEntity;
.locals 11
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lokhttp3/Headers;",
"TT;",
"Lcom/lzy/okgo/cache/CacheMode;",
"Ljava/lang/String;",
")",
"Lcom/lzy/okgo/cache/CacheEntity<",
"TT;>;"
}
.end annotation
.line 63
sget-object v0, Lcom/lzy/okgo/cache/CacheMode;->DEFAULT:Lcom/lzy/okgo/cache/CacheMode;
if-ne p2, v0, :cond_9
const-string p2, "Date"
.line 64
invoke-virtual {p0, p2}, Lokhttp3/Headers;->get(Ljava/lang/String;)Ljava/lang/String;
move-result-object p2
invoke-static {p2}, Lcom/lzy/okgo/model/HttpHeaders;->getDate(Ljava/lang/String;)J
move-result-wide v0
const-string p2, "Expires"
.line 65
invoke-virtual {p0, p2}, Lokhttp3/Headers;->get(Ljava/lang/String;)Ljava/lang/String;
move-result-object p2
invoke-static {p2}, Lcom/lzy/okgo/model/HttpHeaders;->getExpiration(Ljava/lang/String;)J
move-result-wide v2
const-string p2, "Cache-Control"
.line 66
invoke-virtual {p0, p2}, Lokhttp3/Headers;->get(Ljava/lang/String;)Ljava/lang/String;
move-result-object p2
const-string v4, "Pragma"
invoke-virtual {p0, v4}, Lokhttp3/Headers;->get(Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
invoke-static {p2, v4}, Lcom/lzy/okgo/model/HttpHeaders;->getCacheControl(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p2
.line 69
invoke-static {p2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v4
const/4 v5, 0x0
const-wide/16 v6, 0x0
if-eqz v4, :cond_0
cmp-long v4, v2, v6
if-gtz v4, :cond_0
return-object v5
.line 72
:cond_0
invoke-static {p2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v4
if-nez v4, :cond_4
.line 73
new-instance v4, Ljava/util/StringTokenizer;
const-string v8, ","
invoke-direct {v4, p2, v8}, Ljava/util/StringTokenizer;-><init>(Ljava/lang/String;Ljava/lang/String;)V
move-wide v8, v6
.line 74
:cond_1
:goto_0
invoke-virtual {v4}, Ljava/util/StringTokenizer;->hasMoreTokens()Z
move-result p2
if-eqz p2, :cond_5
.line 75
invoke-virtual {v4}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String;
move-result-object p2
invoke-virtual {p2}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object p2
invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale;
move-result-object v10
invoke-virtual {p2, v10}, Ljava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String;
move-result-object p2
const-string v10, "no-cache"
.line 76
invoke-virtual {p2, v10}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v10
if-nez v10, :cond_3
const-string v10, "no-store"
invoke-virtual {p2, v10}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v10
if-eqz v10, :cond_2
goto :goto_1
:cond_2
const-string v10, "max-age="
.line 79
invoke-virtual {p2, v10}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v10
if-eqz v10, :cond_1
const/16 v10, 0x8
.line 82
:try_start_0
invoke-virtual {p2, v10}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object p2
invoke-static {p2}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide v8
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
cmp-long p2, v8, v6
if-gtz p2, :cond_1
return-object v5
:catch_0
move-exception p2
.line 86
invoke-static {p2}, Lcom/lzy/okgo/utils/OkLogger;->printStackTrace(Ljava/lang/Throwable;)V
goto :goto_0
:cond_3
:goto_1
return-object v5
:cond_4
move-wide v8, v6
.line 93
:cond_5
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v4
cmp-long p2, v0, v6
if-lez p2, :cond_6
goto :goto_2
:cond_6
move-wide v0, v4
:goto_2
cmp-long p2, v8, v6
if-lez p2, :cond_7
const-wide/16 v2, 0x3e8
mul-long/2addr v8, v2
add-long v2, v0, v8
goto :goto_3
:cond_7
cmp-long p2, v2, v6
if-ltz p2, :cond_8
goto :goto_3
:cond_8
move-wide v2, v6
goto :goto_3
.line 104
:cond_9
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v2
.line 108
:goto_3
new-instance p2, Lcom/lzy/okgo/model/HttpHeaders;
invoke-direct {p2}, Lcom/lzy/okgo/model/HttpHeaders;-><init>()V
.line 109
invoke-virtual {p0}, Lokhttp3/Headers;->names()Ljava/util/Set;
move-result-object v0
invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v0
:goto_4
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_a
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/String;
.line 110
invoke-virtual {p0, v1}, Lokhttp3/Headers;->get(Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
invoke-virtual {p2, v1, v4}, Lcom/lzy/okgo/model/HttpHeaders;->put(Ljava/lang/String;Ljava/lang/String;)V
goto :goto_4
.line 114
:cond_a
new-instance p0, Lcom/lzy/okgo/cache/CacheEntity;
invoke-direct {p0}, Lcom/lzy/okgo/cache/CacheEntity;-><init>()V
.line 115
invoke-virtual {p0, p3}, Lcom/lzy/okgo/cache/CacheEntity;->setKey(Ljava/lang/String;)V
.line 116
invoke-virtual {p0, p1}, Lcom/lzy/okgo/cache/CacheEntity;->setData(Ljava/lang/Object;)V
.line 117
invoke-virtual {p0, v2, v3}, Lcom/lzy/okgo/cache/CacheEntity;->setLocalExpire(J)V
.line 118
invoke-virtual {p0, p2}, Lcom/lzy/okgo/cache/CacheEntity;->setResponseHeaders(Lcom/lzy/okgo/model/HttpHeaders;)V
return-object p0
.end method