CacheInterceptor.smali 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668
  1. .class public final Lokhttp3/internal/cache/CacheInterceptor;
  2. .super Ljava/lang/Object;
  3. .source ""
  4. # interfaces
  5. .implements Lokhttp3/Interceptor;
  6. # instance fields
  7. .field final cache:Lokhttp3/internal/cache/InternalCache;
  8. # direct methods
  9. .method public constructor <init>(Lokhttp3/internal/cache/InternalCache;)V
  10. .locals 0
  11. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  12. iput-object p1, p0, Lokhttp3/internal/cache/CacheInterceptor;->cache:Lokhttp3/internal/cache/InternalCache;
  13. return-void
  14. .end method
  15. .method private cacheWritingResponse(Lokhttp3/internal/cache/CacheRequest;Lokhttp3/Response;)Lokhttp3/Response;
  16. .locals 4
  17. .annotation system Ldalvik/annotation/Throws;
  18. value = {
  19. Ljava/io/IOException;
  20. }
  21. .end annotation
  22. if-nez p1, :cond_0
  23. return-object p2
  24. :cond_0
  25. invoke-interface {p1}, Lokhttp3/internal/cache/CacheRequest;->body()Lokio/Sink;
  26. move-result-object v0
  27. if-nez v0, :cond_1
  28. return-object p2
  29. :cond_1
  30. invoke-virtual {p2}, Lokhttp3/Response;->body()Lokhttp3/ResponseBody;
  31. move-result-object v1
  32. invoke-virtual {v1}, Lokhttp3/ResponseBody;->source()Lokio/BufferedSource;
  33. move-result-object v1
  34. invoke-static {v0}, Lokio/Okio;->buffer(Lokio/Sink;)Lokio/BufferedSink;
  35. move-result-object v0
  36. new-instance v2, Lokhttp3/internal/cache/CacheInterceptor$1;
  37. invoke-direct {v2, p0, v1, p1, v0}, Lokhttp3/internal/cache/CacheInterceptor$1;-><init>(Lokhttp3/internal/cache/CacheInterceptor;Lokio/BufferedSource;Lokhttp3/internal/cache/CacheRequest;Lokio/BufferedSink;)V
  38. const-string p1, "Content-Type"
  39. invoke-virtual {p2, p1}, Lokhttp3/Response;->header(Ljava/lang/String;)Ljava/lang/String;
  40. move-result-object p1
  41. invoke-virtual {p2}, Lokhttp3/Response;->body()Lokhttp3/ResponseBody;
  42. move-result-object v0
  43. invoke-virtual {v0}, Lokhttp3/ResponseBody;->contentLength()J
  44. move-result-wide v0
  45. invoke-virtual {p2}, Lokhttp3/Response;->newBuilder()Lokhttp3/Response$Builder;
  46. move-result-object p2
  47. new-instance v3, Lokhttp3/internal/http/RealResponseBody;
  48. invoke-static {v2}, Lokio/Okio;->buffer(Lokio/Source;)Lokio/BufferedSource;
  49. move-result-object v2
  50. invoke-direct {v3, p1, v0, v1, v2}, Lokhttp3/internal/http/RealResponseBody;-><init>(Ljava/lang/String;JLokio/BufferedSource;)V
  51. invoke-virtual {p2, v3}, Lokhttp3/Response$Builder;->body(Lokhttp3/ResponseBody;)Lokhttp3/Response$Builder;
  52. move-result-object p1
  53. invoke-virtual {p1}, Lokhttp3/Response$Builder;->build()Lokhttp3/Response;
  54. move-result-object p1
  55. return-object p1
  56. .end method
  57. .method private static combine(Lokhttp3/Headers;Lokhttp3/Headers;)Lokhttp3/Headers;
  58. .locals 7
  59. new-instance v0, Lokhttp3/Headers$Builder;
  60. invoke-direct {v0}, Lokhttp3/Headers$Builder;-><init>()V
  61. invoke-virtual {p0}, Lokhttp3/Headers;->size()I
  62. move-result v1
  63. const/4 v2, 0x0
  64. const/4 v3, 0x0
  65. :goto_0
  66. if-ge v3, v1, :cond_3
  67. invoke-virtual {p0, v3}, Lokhttp3/Headers;->name(I)Ljava/lang/String;
  68. move-result-object v4
  69. invoke-virtual {p0, v3}, Lokhttp3/Headers;->value(I)Ljava/lang/String;
  70. move-result-object v5
  71. const-string v6, "Warning"
  72. invoke-virtual {v6, v4}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
  73. move-result v6
  74. if-eqz v6, :cond_0
  75. const-string v6, "1"
  76. invoke-virtual {v5, v6}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
  77. move-result v6
  78. if-eqz v6, :cond_0
  79. goto :goto_1
  80. :cond_0
  81. invoke-static {v4}, Lokhttp3/internal/cache/CacheInterceptor;->isEndToEnd(Ljava/lang/String;)Z
  82. move-result v6
  83. if-eqz v6, :cond_1
  84. invoke-virtual {p1, v4}, Lokhttp3/Headers;->get(Ljava/lang/String;)Ljava/lang/String;
  85. move-result-object v6
  86. if-nez v6, :cond_2
  87. :cond_1
  88. sget-object v6, Lokhttp3/internal/Internal;->instance:Lokhttp3/internal/Internal;
  89. invoke-virtual {v6, v0, v4, v5}, Lokhttp3/internal/Internal;->addLenient(Lokhttp3/Headers$Builder;Ljava/lang/String;Ljava/lang/String;)V
  90. :cond_2
  91. :goto_1
  92. add-int/lit8 v3, v3, 0x1
  93. goto :goto_0
  94. :cond_3
  95. invoke-virtual {p1}, Lokhttp3/Headers;->size()I
  96. move-result p0
  97. :goto_2
  98. if-ge v2, p0, :cond_6
  99. invoke-virtual {p1, v2}, Lokhttp3/Headers;->name(I)Ljava/lang/String;
  100. move-result-object v1
  101. const-string v3, "Content-Length"
  102. invoke-virtual {v3, v1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
  103. move-result v3
  104. if-eqz v3, :cond_4
  105. goto :goto_3
  106. :cond_4
  107. invoke-static {v1}, Lokhttp3/internal/cache/CacheInterceptor;->isEndToEnd(Ljava/lang/String;)Z
  108. move-result v3
  109. if-eqz v3, :cond_5
  110. sget-object v3, Lokhttp3/internal/Internal;->instance:Lokhttp3/internal/Internal;
  111. invoke-virtual {p1, v2}, Lokhttp3/Headers;->value(I)Ljava/lang/String;
  112. move-result-object v4
  113. invoke-virtual {v3, v0, v1, v4}, Lokhttp3/internal/Internal;->addLenient(Lokhttp3/Headers$Builder;Ljava/lang/String;Ljava/lang/String;)V
  114. :cond_5
  115. :goto_3
  116. add-int/lit8 v2, v2, 0x1
  117. goto :goto_2
  118. :cond_6
  119. invoke-virtual {v0}, Lokhttp3/Headers$Builder;->build()Lokhttp3/Headers;
  120. move-result-object p0
  121. return-object p0
  122. .end method
  123. .method static isEndToEnd(Ljava/lang/String;)Z
  124. .locals 1
  125. const-string v0, "Connection"
  126. invoke-virtual {v0, p0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
  127. move-result v0
  128. if-nez v0, :cond_0
  129. const-string v0, "Keep-Alive"
  130. invoke-virtual {v0, p0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
  131. move-result v0
  132. if-nez v0, :cond_0
  133. const-string v0, "Proxy-Authenticate"
  134. invoke-virtual {v0, p0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
  135. move-result v0
  136. if-nez v0, :cond_0
  137. const-string v0, "Proxy-Authorization"
  138. invoke-virtual {v0, p0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
  139. move-result v0
  140. if-nez v0, :cond_0
  141. const-string v0, "TE"
  142. invoke-virtual {v0, p0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
  143. move-result v0
  144. if-nez v0, :cond_0
  145. const-string v0, "Trailers"
  146. invoke-virtual {v0, p0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
  147. move-result v0
  148. if-nez v0, :cond_0
  149. const-string v0, "Transfer-Encoding"
  150. invoke-virtual {v0, p0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
  151. move-result v0
  152. if-nez v0, :cond_0
  153. const-string v0, "Upgrade"
  154. invoke-virtual {v0, p0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
  155. move-result p0
  156. if-nez p0, :cond_0
  157. const/4 p0, 0x1
  158. goto :goto_0
  159. :cond_0
  160. const/4 p0, 0x0
  161. :goto_0
  162. return p0
  163. .end method
  164. .method private static stripBody(Lokhttp3/Response;)Lokhttp3/Response;
  165. .locals 1
  166. if-eqz p0, :cond_0
  167. invoke-virtual {p0}, Lokhttp3/Response;->body()Lokhttp3/ResponseBody;
  168. move-result-object v0
  169. if-eqz v0, :cond_0
  170. invoke-virtual {p0}, Lokhttp3/Response;->newBuilder()Lokhttp3/Response$Builder;
  171. move-result-object p0
  172. const/4 v0, 0x0
  173. invoke-virtual {p0, v0}, Lokhttp3/Response$Builder;->body(Lokhttp3/ResponseBody;)Lokhttp3/Response$Builder;
  174. move-result-object p0
  175. invoke-virtual {p0}, Lokhttp3/Response$Builder;->build()Lokhttp3/Response;
  176. move-result-object p0
  177. :cond_0
  178. return-object p0
  179. .end method
  180. # virtual methods
  181. .method public intercept(Lokhttp3/Interceptor$Chain;)Lokhttp3/Response;
  182. .locals 5
  183. .annotation system Ldalvik/annotation/Throws;
  184. value = {
  185. Ljava/io/IOException;
  186. }
  187. .end annotation
  188. iget-object v0, p0, Lokhttp3/internal/cache/CacheInterceptor;->cache:Lokhttp3/internal/cache/InternalCache;
  189. if-eqz v0, :cond_0
  190. invoke-interface {p1}, Lokhttp3/Interceptor$Chain;->request()Lokhttp3/Request;
  191. move-result-object v1
  192. invoke-interface {v0, v1}, Lokhttp3/internal/cache/InternalCache;->get(Lokhttp3/Request;)Lokhttp3/Response;
  193. move-result-object v0
  194. goto :goto_0
  195. :cond_0
  196. const/4 v0, 0x0
  197. :goto_0
  198. invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
  199. move-result-wide v1
  200. new-instance v3, Lokhttp3/internal/cache/CacheStrategy$Factory;
  201. invoke-interface {p1}, Lokhttp3/Interceptor$Chain;->request()Lokhttp3/Request;
  202. move-result-object v4
  203. invoke-direct {v3, v1, v2, v4, v0}, Lokhttp3/internal/cache/CacheStrategy$Factory;-><init>(JLokhttp3/Request;Lokhttp3/Response;)V
  204. invoke-virtual {v3}, Lokhttp3/internal/cache/CacheStrategy$Factory;->get()Lokhttp3/internal/cache/CacheStrategy;
  205. move-result-object v1
  206. iget-object v2, v1, Lokhttp3/internal/cache/CacheStrategy;->networkRequest:Lokhttp3/Request;
  207. iget-object v3, v1, Lokhttp3/internal/cache/CacheStrategy;->cacheResponse:Lokhttp3/Response;
  208. iget-object v4, p0, Lokhttp3/internal/cache/CacheInterceptor;->cache:Lokhttp3/internal/cache/InternalCache;
  209. if-eqz v4, :cond_1
  210. invoke-interface {v4, v1}, Lokhttp3/internal/cache/InternalCache;->trackResponse(Lokhttp3/internal/cache/CacheStrategy;)V
  211. :cond_1
  212. if-eqz v0, :cond_2
  213. if-nez v3, :cond_2
  214. invoke-virtual {v0}, Lokhttp3/Response;->body()Lokhttp3/ResponseBody;
  215. move-result-object v1
  216. invoke-static {v1}, Lokhttp3/internal/Util;->closeQuietly(Ljava/io/Closeable;)V
  217. :cond_2
  218. if-nez v2, :cond_3
  219. if-nez v3, :cond_3
  220. new-instance v0, Lokhttp3/Response$Builder;
  221. invoke-direct {v0}, Lokhttp3/Response$Builder;-><init>()V
  222. invoke-interface {p1}, Lokhttp3/Interceptor$Chain;->request()Lokhttp3/Request;
  223. move-result-object p1
  224. invoke-virtual {v0, p1}, Lokhttp3/Response$Builder;->request(Lokhttp3/Request;)Lokhttp3/Response$Builder;
  225. move-result-object p1
  226. sget-object v0, Lokhttp3/Protocol;->HTTP_1_1:Lokhttp3/Protocol;
  227. invoke-virtual {p1, v0}, Lokhttp3/Response$Builder;->protocol(Lokhttp3/Protocol;)Lokhttp3/Response$Builder;
  228. move-result-object p1
  229. const/16 v0, 0x1f8
  230. invoke-virtual {p1, v0}, Lokhttp3/Response$Builder;->code(I)Lokhttp3/Response$Builder;
  231. move-result-object p1
  232. const-string v0, "Unsatisfiable Request (only-if-cached)"
  233. invoke-virtual {p1, v0}, Lokhttp3/Response$Builder;->message(Ljava/lang/String;)Lokhttp3/Response$Builder;
  234. move-result-object p1
  235. sget-object v0, Lokhttp3/internal/Util;->EMPTY_RESPONSE:Lokhttp3/ResponseBody;
  236. invoke-virtual {p1, v0}, Lokhttp3/Response$Builder;->body(Lokhttp3/ResponseBody;)Lokhttp3/Response$Builder;
  237. move-result-object p1
  238. const-wide/16 v0, -0x1
  239. invoke-virtual {p1, v0, v1}, Lokhttp3/Response$Builder;->sentRequestAtMillis(J)Lokhttp3/Response$Builder;
  240. move-result-object p1
  241. invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
  242. move-result-wide v0
  243. invoke-virtual {p1, v0, v1}, Lokhttp3/Response$Builder;->receivedResponseAtMillis(J)Lokhttp3/Response$Builder;
  244. move-result-object p1
  245. invoke-virtual {p1}, Lokhttp3/Response$Builder;->build()Lokhttp3/Response;
  246. move-result-object p1
  247. return-object p1
  248. :cond_3
  249. if-nez v2, :cond_4
  250. invoke-virtual {v3}, Lokhttp3/Response;->newBuilder()Lokhttp3/Response$Builder;
  251. move-result-object p1
  252. invoke-static {v3}, Lokhttp3/internal/cache/CacheInterceptor;->stripBody(Lokhttp3/Response;)Lokhttp3/Response;
  253. move-result-object v0
  254. invoke-virtual {p1, v0}, Lokhttp3/Response$Builder;->cacheResponse(Lokhttp3/Response;)Lokhttp3/Response$Builder;
  255. move-result-object p1
  256. invoke-virtual {p1}, Lokhttp3/Response$Builder;->build()Lokhttp3/Response;
  257. move-result-object p1
  258. return-object p1
  259. :cond_4
  260. :try_start_0
  261. invoke-interface {p1, v2}, Lokhttp3/Interceptor$Chain;->proceed(Lokhttp3/Request;)Lokhttp3/Response;
  262. move-result-object p1
  263. :try_end_0
  264. .catchall {:try_start_0 .. :try_end_0} :catchall_0
  265. if-nez p1, :cond_5
  266. if-eqz v0, :cond_5
  267. invoke-virtual {v0}, Lokhttp3/Response;->body()Lokhttp3/ResponseBody;
  268. move-result-object v0
  269. invoke-static {v0}, Lokhttp3/internal/Util;->closeQuietly(Ljava/io/Closeable;)V
  270. :cond_5
  271. if-eqz v3, :cond_7
  272. invoke-virtual {p1}, Lokhttp3/Response;->code()I
  273. move-result v0
  274. const/16 v1, 0x130
  275. if-ne v0, v1, :cond_6
  276. invoke-virtual {v3}, Lokhttp3/Response;->newBuilder()Lokhttp3/Response$Builder;
  277. move-result-object v0
  278. invoke-virtual {v3}, Lokhttp3/Response;->headers()Lokhttp3/Headers;
  279. move-result-object v1
  280. invoke-virtual {p1}, Lokhttp3/Response;->headers()Lokhttp3/Headers;
  281. move-result-object v2
  282. invoke-static {v1, v2}, Lokhttp3/internal/cache/CacheInterceptor;->combine(Lokhttp3/Headers;Lokhttp3/Headers;)Lokhttp3/Headers;
  283. move-result-object v1
  284. invoke-virtual {v0, v1}, Lokhttp3/Response$Builder;->headers(Lokhttp3/Headers;)Lokhttp3/Response$Builder;
  285. move-result-object v0
  286. invoke-virtual {p1}, Lokhttp3/Response;->sentRequestAtMillis()J
  287. move-result-wide v1
  288. invoke-virtual {v0, v1, v2}, Lokhttp3/Response$Builder;->sentRequestAtMillis(J)Lokhttp3/Response$Builder;
  289. move-result-object v0
  290. invoke-virtual {p1}, Lokhttp3/Response;->receivedResponseAtMillis()J
  291. move-result-wide v1
  292. invoke-virtual {v0, v1, v2}, Lokhttp3/Response$Builder;->receivedResponseAtMillis(J)Lokhttp3/Response$Builder;
  293. move-result-object v0
  294. invoke-static {v3}, Lokhttp3/internal/cache/CacheInterceptor;->stripBody(Lokhttp3/Response;)Lokhttp3/Response;
  295. move-result-object v1
  296. invoke-virtual {v0, v1}, Lokhttp3/Response$Builder;->cacheResponse(Lokhttp3/Response;)Lokhttp3/Response$Builder;
  297. move-result-object v0
  298. invoke-static {p1}, Lokhttp3/internal/cache/CacheInterceptor;->stripBody(Lokhttp3/Response;)Lokhttp3/Response;
  299. move-result-object v1
  300. invoke-virtual {v0, v1}, Lokhttp3/Response$Builder;->networkResponse(Lokhttp3/Response;)Lokhttp3/Response$Builder;
  301. move-result-object v0
  302. invoke-virtual {v0}, Lokhttp3/Response$Builder;->build()Lokhttp3/Response;
  303. move-result-object v0
  304. invoke-virtual {p1}, Lokhttp3/Response;->body()Lokhttp3/ResponseBody;
  305. move-result-object p1
  306. invoke-virtual {p1}, Lokhttp3/ResponseBody;->close()V
  307. iget-object p1, p0, Lokhttp3/internal/cache/CacheInterceptor;->cache:Lokhttp3/internal/cache/InternalCache;
  308. invoke-interface {p1}, Lokhttp3/internal/cache/InternalCache;->trackConditionalCacheHit()V
  309. iget-object p1, p0, Lokhttp3/internal/cache/CacheInterceptor;->cache:Lokhttp3/internal/cache/InternalCache;
  310. invoke-interface {p1, v3, v0}, Lokhttp3/internal/cache/InternalCache;->update(Lokhttp3/Response;Lokhttp3/Response;)V
  311. return-object v0
  312. :cond_6
  313. invoke-virtual {v3}, Lokhttp3/Response;->body()Lokhttp3/ResponseBody;
  314. move-result-object v0
  315. invoke-static {v0}, Lokhttp3/internal/Util;->closeQuietly(Ljava/io/Closeable;)V
  316. :cond_7
  317. invoke-virtual {p1}, Lokhttp3/Response;->newBuilder()Lokhttp3/Response$Builder;
  318. move-result-object v0
  319. invoke-static {v3}, Lokhttp3/internal/cache/CacheInterceptor;->stripBody(Lokhttp3/Response;)Lokhttp3/Response;
  320. move-result-object v1
  321. invoke-virtual {v0, v1}, Lokhttp3/Response$Builder;->cacheResponse(Lokhttp3/Response;)Lokhttp3/Response$Builder;
  322. move-result-object v0
  323. invoke-static {p1}, Lokhttp3/internal/cache/CacheInterceptor;->stripBody(Lokhttp3/Response;)Lokhttp3/Response;
  324. move-result-object p1
  325. invoke-virtual {v0, p1}, Lokhttp3/Response$Builder;->networkResponse(Lokhttp3/Response;)Lokhttp3/Response$Builder;
  326. move-result-object p1
  327. invoke-virtual {p1}, Lokhttp3/Response$Builder;->build()Lokhttp3/Response;
  328. move-result-object p1
  329. iget-object v0, p0, Lokhttp3/internal/cache/CacheInterceptor;->cache:Lokhttp3/internal/cache/InternalCache;
  330. if-eqz v0, :cond_9
  331. invoke-static {p1}, Lokhttp3/internal/http/HttpHeaders;->hasBody(Lokhttp3/Response;)Z
  332. move-result v0
  333. if-eqz v0, :cond_8
  334. invoke-static {p1, v2}, Lokhttp3/internal/cache/CacheStrategy;->isCacheable(Lokhttp3/Response;Lokhttp3/Request;)Z
  335. move-result v0
  336. if-eqz v0, :cond_8
  337. iget-object v0, p0, Lokhttp3/internal/cache/CacheInterceptor;->cache:Lokhttp3/internal/cache/InternalCache;
  338. invoke-interface {v0, p1}, Lokhttp3/internal/cache/InternalCache;->put(Lokhttp3/Response;)Lokhttp3/internal/cache/CacheRequest;
  339. move-result-object v0
  340. invoke-direct {p0, v0, p1}, Lokhttp3/internal/cache/CacheInterceptor;->cacheWritingResponse(Lokhttp3/internal/cache/CacheRequest;Lokhttp3/Response;)Lokhttp3/Response;
  341. move-result-object p1
  342. return-object p1
  343. :cond_8
  344. invoke-virtual {v2}, Lokhttp3/Request;->method()Ljava/lang/String;
  345. move-result-object v0
  346. invoke-static {v0}, Lokhttp3/internal/http/HttpMethod;->invalidatesCache(Ljava/lang/String;)Z
  347. move-result v0
  348. if-eqz v0, :cond_9
  349. :try_start_1
  350. iget-object v0, p0, Lokhttp3/internal/cache/CacheInterceptor;->cache:Lokhttp3/internal/cache/InternalCache;
  351. invoke-interface {v0, v2}, Lokhttp3/internal/cache/InternalCache;->remove(Lokhttp3/Request;)V
  352. :try_end_1
  353. .catch Ljava/io/IOException; {:try_start_1 .. :try_end_1} :catch_0
  354. :catch_0
  355. :cond_9
  356. return-object p1
  357. :catchall_0
  358. move-exception p1
  359. if-eqz v0, :cond_a
  360. invoke-virtual {v0}, Lokhttp3/Response;->body()Lokhttp3/ResponseBody;
  361. move-result-object v0
  362. invoke-static {v0}, Lokhttp3/internal/Util;->closeQuietly(Ljava/io/Closeable;)V
  363. :cond_a
  364. throw p1
  365. .end method