public final class okhttp3.internal.http.RetryAndFollowUpInterceptor implements okhttp3.Interceptor
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: okhttp3.internal.http.RetryAndFollowUpInterceptor
super_class: java.lang.Object
{
private static final int MAX_FOLLOW_UPS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 20
private final okhttp3.OkHttpClient client;
descriptor: Lokhttp3/OkHttpClient;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean forWebSocket;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile okhttp3.internal.connection.StreamAllocation streamAllocation;
descriptor: Lokhttp3/internal/connection/StreamAllocation;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private java.lang.Object callStackTrace;
descriptor: Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
private volatile boolean canceled;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
public void <init>(okhttp3.OkHttpClient, boolean);
descriptor: (Lokhttp3/OkHttpClient;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield okhttp3.internal.http.RetryAndFollowUpInterceptor.client:Lokhttp3/OkHttpClient;
2: aload 0
iload 2
putfield okhttp3.internal.http.RetryAndFollowUpInterceptor.forWebSocket:Z
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lokhttp3/internal/http/RetryAndFollowUpInterceptor;
0 4 1 client Lokhttp3/OkHttpClient;
0 4 2 forWebSocket Z
MethodParameters:
Name Flags
client
forWebSocket
public void cancel();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
iconst_1
putfield okhttp3.internal.http.RetryAndFollowUpInterceptor.canceled:Z
1: aload 0
getfield okhttp3.internal.http.RetryAndFollowUpInterceptor.streamAllocation:Lokhttp3/internal/connection/StreamAllocation;
astore 1
start local 1 2: aload 1
ifnull 3
aload 1
invokevirtual okhttp3.internal.connection.StreamAllocation.cancel:()V
3: StackMap locals: okhttp3.internal.connection.StreamAllocation
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lokhttp3/internal/http/RetryAndFollowUpInterceptor;
2 4 1 streamAllocation Lokhttp3/internal/connection/StreamAllocation;
public boolean isCanceled();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield okhttp3.internal.http.RetryAndFollowUpInterceptor.canceled:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lokhttp3/internal/http/RetryAndFollowUpInterceptor;
public void setCallStackTrace(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield okhttp3.internal.http.RetryAndFollowUpInterceptor.callStackTrace:Ljava/lang/Object;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lokhttp3/internal/http/RetryAndFollowUpInterceptor;
0 2 1 callStackTrace Ljava/lang/Object;
MethodParameters:
Name Flags
callStackTrace
public okhttp3.internal.connection.StreamAllocation streamAllocation();
descriptor: ()Lokhttp3/internal/connection/StreamAllocation;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield okhttp3.internal.http.RetryAndFollowUpInterceptor.streamAllocation:Lokhttp3/internal/connection/StreamAllocation;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lokhttp3/internal/http/RetryAndFollowUpInterceptor;
public okhttp3.Response intercept(okhttp3.Interceptor$Chain);
descriptor: (Lokhttp3/Interceptor$Chain;)Lokhttp3/Response;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=14, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface okhttp3.Interceptor$Chain.request:()Lokhttp3/Request;
astore 2
start local 2 1: aload 1
checkcast okhttp3.internal.http.RealInterceptorChain
astore 3
start local 3 2: aload 3
invokevirtual okhttp3.internal.http.RealInterceptorChain.call:()Lokhttp3/Call;
astore 4
start local 4 3: aload 3
invokevirtual okhttp3.internal.http.RealInterceptorChain.eventListener:()Lokhttp3/EventListener;
astore 5
start local 5 4: new okhttp3.internal.connection.StreamAllocation
dup
aload 0
getfield okhttp3.internal.http.RetryAndFollowUpInterceptor.client:Lokhttp3/OkHttpClient;
invokevirtual okhttp3.OkHttpClient.connectionPool:()Lokhttp3/ConnectionPool;
5: aload 0
aload 2
invokevirtual okhttp3.Request.url:()Lokhttp3/HttpUrl;
invokevirtual okhttp3.internal.http.RetryAndFollowUpInterceptor.createAddress:(Lokhttp3/HttpUrl;)Lokhttp3/Address;
aload 4
aload 5
aload 0
getfield okhttp3.internal.http.RetryAndFollowUpInterceptor.callStackTrace:Ljava/lang/Object;
6: invokespecial okhttp3.internal.connection.StreamAllocation.<init>:(Lokhttp3/ConnectionPool;Lokhttp3/Address;Lokhttp3/Call;Lokhttp3/EventListener;Ljava/lang/Object;)V
astore 6
start local 6 7: aload 0
aload 6
putfield okhttp3.internal.http.RetryAndFollowUpInterceptor.streamAllocation:Lokhttp3/internal/connection/StreamAllocation;
8: iconst_0
istore 7
start local 7 9: aconst_null
astore 8
start local 8 10: StackMap locals: okhttp3.internal.http.RetryAndFollowUpInterceptor okhttp3.Interceptor$Chain okhttp3.Request okhttp3.internal.http.RealInterceptorChain okhttp3.Call okhttp3.EventListener okhttp3.internal.connection.StreamAllocation int okhttp3.Response
StackMap stack:
aload 0
getfield okhttp3.internal.http.RetryAndFollowUpInterceptor.canceled:Z
ifeq 13
11: aload 6
invokevirtual okhttp3.internal.connection.StreamAllocation.release:()V
12: new java.io.IOException
dup
ldc "Canceled"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals:
StackMap stack:
iconst_1
istore 10
start local 10 14: aload 3
aload 2
aload 6
aconst_null
aconst_null
invokevirtual okhttp3.internal.http.RealInterceptorChain.proceed:(Lokhttp3/Request;Lokhttp3/internal/connection/StreamAllocation;Lokhttp3/internal/http/HttpCodec;Lokhttp3/internal/connection/RealConnection;)Lokhttp3/Response;
astore 9
start local 9 15: iconst_0
istore 10
16: goto 40
end local 9 StackMap locals: okhttp3.internal.http.RetryAndFollowUpInterceptor okhttp3.Interceptor$Chain okhttp3.Request okhttp3.internal.http.RealInterceptorChain okhttp3.Call okhttp3.EventListener okhttp3.internal.connection.StreamAllocation int okhttp3.Response top int
StackMap stack: okhttp3.internal.connection.RouteException
17: astore 11
start local 11 18: aload 0
aload 11
invokevirtual okhttp3.internal.connection.RouteException.getLastConnectException:()Ljava/io/IOException;
aload 6
iconst_0
aload 2
invokevirtual okhttp3.internal.http.RetryAndFollowUpInterceptor.recover:(Ljava/io/IOException;Lokhttp3/internal/connection/StreamAllocation;ZLokhttp3/Request;)Z
ifne 20
19: aload 11
invokevirtual okhttp3.internal.connection.RouteException.getFirstConnectException:()Ljava/io/IOException;
athrow
20: StackMap locals: okhttp3.internal.connection.RouteException
StackMap stack:
iconst_0
istore 10
21: iload 10
ifeq 10
22: aload 6
aconst_null
invokevirtual okhttp3.internal.connection.StreamAllocation.streamFailed:(Ljava/io/IOException;)V
23: aload 6
invokevirtual okhttp3.internal.connection.StreamAllocation.release:()V
24: goto 10
end local 11 25: StackMap locals: okhttp3.internal.http.RetryAndFollowUpInterceptor okhttp3.Interceptor$Chain okhttp3.Request okhttp3.internal.http.RealInterceptorChain okhttp3.Call okhttp3.EventListener okhttp3.internal.connection.StreamAllocation int okhttp3.Response top int
StackMap stack: java.io.IOException
astore 11
start local 11 26: aload 11
instanceof okhttp3.internal.http2.ConnectionShutdownException
ifeq 27
iconst_0
goto 28
StackMap locals: java.io.IOException
StackMap stack:
27: iconst_1
StackMap locals:
StackMap stack: int
28: istore 12
start local 12 29: aload 0
aload 11
aload 6
iload 12
aload 2
invokevirtual okhttp3.internal.http.RetryAndFollowUpInterceptor.recover:(Ljava/io/IOException;Lokhttp3/internal/connection/StreamAllocation;ZLokhttp3/Request;)Z
ifne 30
aload 11
athrow
30: StackMap locals: int
StackMap stack:
iconst_0
istore 10
31: iload 10
ifeq 10
32: aload 6
aconst_null
invokevirtual okhttp3.internal.connection.StreamAllocation.streamFailed:(Ljava/io/IOException;)V
33: aload 6
invokevirtual okhttp3.internal.connection.StreamAllocation.release:()V
34: goto 10
end local 12 end local 11 35: StackMap locals: okhttp3.internal.http.RetryAndFollowUpInterceptor okhttp3.Interceptor$Chain okhttp3.Request okhttp3.internal.http.RealInterceptorChain okhttp3.Call okhttp3.EventListener okhttp3.internal.connection.StreamAllocation int okhttp3.Response top int
StackMap stack: java.lang.Throwable
astore 13
36: iload 10
ifeq 39
37: aload 6
aconst_null
invokevirtual okhttp3.internal.connection.StreamAllocation.streamFailed:(Ljava/io/IOException;)V
38: aload 6
invokevirtual okhttp3.internal.connection.StreamAllocation.release:()V
39: StackMap locals: okhttp3.internal.http.RetryAndFollowUpInterceptor okhttp3.Interceptor$Chain okhttp3.Request okhttp3.internal.http.RealInterceptorChain okhttp3.Call okhttp3.EventListener okhttp3.internal.connection.StreamAllocation int okhttp3.Response top int top top java.lang.Throwable
StackMap stack:
aload 13
athrow
start local 9 40: StackMap locals: okhttp3.internal.http.RetryAndFollowUpInterceptor okhttp3.Interceptor$Chain okhttp3.Request okhttp3.internal.http.RealInterceptorChain okhttp3.Call okhttp3.EventListener okhttp3.internal.connection.StreamAllocation int okhttp3.Response okhttp3.Response int
StackMap stack:
iload 10
ifeq 43
41: aload 6
aconst_null
invokevirtual okhttp3.internal.connection.StreamAllocation.streamFailed:(Ljava/io/IOException;)V
42: aload 6
invokevirtual okhttp3.internal.connection.StreamAllocation.release:()V
43: StackMap locals:
StackMap stack:
aload 8
ifnull 51
44: aload 9
invokevirtual okhttp3.Response.newBuilder:()Lokhttp3/Response$Builder;
45: aload 8
invokevirtual okhttp3.Response.newBuilder:()Lokhttp3/Response$Builder;
46: aconst_null
invokevirtual okhttp3.Response$Builder.body:(Lokhttp3/ResponseBody;)Lokhttp3/Response$Builder;
47: invokevirtual okhttp3.Response$Builder.build:()Lokhttp3/Response;
48: invokevirtual okhttp3.Response$Builder.priorResponse:(Lokhttp3/Response;)Lokhttp3/Response$Builder;
49: invokevirtual okhttp3.Response$Builder.build:()Lokhttp3/Response;
50: astore 9
51: StackMap locals:
StackMap stack:
aload 0
aload 9
aload 6
invokevirtual okhttp3.internal.connection.StreamAllocation.route:()Lokhttp3/Route;
invokevirtual okhttp3.internal.http.RetryAndFollowUpInterceptor.followUpRequest:(Lokhttp3/Response;Lokhttp3/Route;)Lokhttp3/Request;
astore 11
start local 11 52: goto 56
end local 11 StackMap locals:
StackMap stack: java.io.IOException
53: astore 12
start local 12 54: aload 6
invokevirtual okhttp3.internal.connection.StreamAllocation.release:()V
55: aload 12
athrow
end local 12 start local 11 56: StackMap locals: okhttp3.Request
StackMap stack:
aload 11
ifnonnull 59
57: aload 6
invokevirtual okhttp3.internal.connection.StreamAllocation.release:()V
58: aload 9
areturn
59: StackMap locals:
StackMap stack:
aload 9
invokevirtual okhttp3.Response.body:()Lokhttp3/ResponseBody;
invokestatic okhttp3.internal.Util.closeQuietly:(Ljava/io/Closeable;)V
60: iinc 7 1
iload 7
bipush 20
if_icmple 63
61: aload 6
invokevirtual okhttp3.internal.connection.StreamAllocation.release:()V
62: new java.net.ProtocolException
dup
new java.lang.StringBuilder
dup
ldc "Too many follow-up requests: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 7
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.net.ProtocolException.<init>:(Ljava/lang/String;)V
athrow
63: StackMap locals:
StackMap stack:
aload 11
invokevirtual okhttp3.Request.body:()Lokhttp3/RequestBody;
instanceof okhttp3.internal.http.UnrepeatableRequestBody
ifeq 66
64: aload 6
invokevirtual okhttp3.internal.connection.StreamAllocation.release:()V
65: new java.net.HttpRetryException
dup
ldc "Cannot retry streamed HTTP body"
aload 9
invokevirtual okhttp3.Response.code:()I
invokespecial java.net.HttpRetryException.<init>:(Ljava/lang/String;I)V
athrow
66: StackMap locals:
StackMap stack:
aload 0
aload 9
aload 11
invokevirtual okhttp3.Request.url:()Lokhttp3/HttpUrl;
invokevirtual okhttp3.internal.http.RetryAndFollowUpInterceptor.sameConnection:(Lokhttp3/Response;Lokhttp3/HttpUrl;)Z
ifne 73
67: aload 6
invokevirtual okhttp3.internal.connection.StreamAllocation.release:()V
68: new okhttp3.internal.connection.StreamAllocation
dup
aload 0
getfield okhttp3.internal.http.RetryAndFollowUpInterceptor.client:Lokhttp3/OkHttpClient;
invokevirtual okhttp3.OkHttpClient.connectionPool:()Lokhttp3/ConnectionPool;
69: aload 0
aload 11
invokevirtual okhttp3.Request.url:()Lokhttp3/HttpUrl;
invokevirtual okhttp3.internal.http.RetryAndFollowUpInterceptor.createAddress:(Lokhttp3/HttpUrl;)Lokhttp3/Address;
aload 4
aload 5
aload 0
getfield okhttp3.internal.http.RetryAndFollowUpInterceptor.callStackTrace:Ljava/lang/Object;
70: invokespecial okhttp3.internal.connection.StreamAllocation.<init>:(Lokhttp3/ConnectionPool;Lokhttp3/Address;Lokhttp3/Call;Lokhttp3/EventListener;Ljava/lang/Object;)V
astore 6
71: aload 0
aload 6
putfield okhttp3.internal.http.RetryAndFollowUpInterceptor.streamAllocation:Lokhttp3/internal/connection/StreamAllocation;
72: goto 77
StackMap locals:
StackMap stack:
73: aload 6
invokevirtual okhttp3.internal.connection.StreamAllocation.codec:()Lokhttp3/internal/http/HttpCodec;
ifnull 77
74: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Closing the body of "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
75: ldc " didn't close its backing stream. Bad interceptor?"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
76: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
77: StackMap locals:
StackMap stack:
aload 11
astore 2
78: aload 9
astore 8
end local 11 end local 10 end local 9 79: goto 10
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 80 0 this Lokhttp3/internal/http/RetryAndFollowUpInterceptor;
0 80 1 chain Lokhttp3/Interceptor$Chain;
1 80 2 request Lokhttp3/Request;
2 80 3 realChain Lokhttp3/internal/http/RealInterceptorChain;
3 80 4 call Lokhttp3/Call;
4 80 5 eventListener Lokhttp3/EventListener;
7 80 6 streamAllocation Lokhttp3/internal/connection/StreamAllocation;
9 80 7 followUpCount I
10 80 8 priorResponse Lokhttp3/Response;
15 17 9 response Lokhttp3/Response;
40 79 9 response Lokhttp3/Response;
14 79 10 releaseConnection Z
18 25 11 e Lokhttp3/internal/connection/RouteException;
26 35 11 e Ljava/io/IOException;
29 35 12 requestSendStarted Z
52 53 11 followUp Lokhttp3/Request;
56 79 11 followUp Lokhttp3/Request;
54 56 12 e Ljava/io/IOException;
Exception table:
from to target type
14 16 17 Class okhttp3.internal.connection.RouteException
14 16 25 Class java.io.IOException
14 21 35 any
25 31 35 any
51 52 53 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
chain
private okhttp3.Address createAddress(okhttp3.HttpUrl);
descriptor: (Lokhttp3/HttpUrl;)Lokhttp3/Address;
flags: (0x0002) ACC_PRIVATE
Code:
stack=14, locals=5, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aconst_null
astore 3
start local 3 2: aconst_null
astore 4
start local 4 3: aload 1
invokevirtual okhttp3.HttpUrl.isHttps:()Z
ifeq 7
4: aload 0
getfield okhttp3.internal.http.RetryAndFollowUpInterceptor.client:Lokhttp3/OkHttpClient;
invokevirtual okhttp3.OkHttpClient.sslSocketFactory:()Ljavax/net/ssl/SSLSocketFactory;
astore 2
5: aload 0
getfield okhttp3.internal.http.RetryAndFollowUpInterceptor.client:Lokhttp3/OkHttpClient;
invokevirtual okhttp3.OkHttpClient.hostnameVerifier:()Ljavax/net/ssl/HostnameVerifier;
astore 3
6: aload 0
getfield okhttp3.internal.http.RetryAndFollowUpInterceptor.client:Lokhttp3/OkHttpClient;
invokevirtual okhttp3.OkHttpClient.certificatePinner:()Lokhttp3/CertificatePinner;
astore 4
7: StackMap locals: javax.net.ssl.SSLSocketFactory javax.net.ssl.HostnameVerifier okhttp3.CertificatePinner
StackMap stack:
new okhttp3.Address
dup
aload 1
invokevirtual okhttp3.HttpUrl.host:()Ljava/lang/String;
aload 1
invokevirtual okhttp3.HttpUrl.port:()I
aload 0
getfield okhttp3.internal.http.RetryAndFollowUpInterceptor.client:Lokhttp3/OkHttpClient;
invokevirtual okhttp3.OkHttpClient.dns:()Lokhttp3/Dns;
aload 0
getfield okhttp3.internal.http.RetryAndFollowUpInterceptor.client:Lokhttp3/OkHttpClient;
invokevirtual okhttp3.OkHttpClient.socketFactory:()Ljavax/net/SocketFactory;
8: aload 2
aload 3
aload 4
aload 0
getfield okhttp3.internal.http.RetryAndFollowUpInterceptor.client:Lokhttp3/OkHttpClient;
invokevirtual okhttp3.OkHttpClient.proxyAuthenticator:()Lokhttp3/Authenticator;
9: aload 0
getfield okhttp3.internal.http.RetryAndFollowUpInterceptor.client:Lokhttp3/OkHttpClient;
invokevirtual okhttp3.OkHttpClient.proxy:()Ljava/net/Proxy;
aload 0
getfield okhttp3.internal.http.RetryAndFollowUpInterceptor.client:Lokhttp3/OkHttpClient;
invokevirtual okhttp3.OkHttpClient.protocols:()Ljava/util/List;
aload 0
getfield okhttp3.internal.http.RetryAndFollowUpInterceptor.client:Lokhttp3/OkHttpClient;
invokevirtual okhttp3.OkHttpClient.connectionSpecs:()Ljava/util/List;
aload 0
getfield okhttp3.internal.http.RetryAndFollowUpInterceptor.client:Lokhttp3/OkHttpClient;
invokevirtual okhttp3.OkHttpClient.proxySelector:()Ljava/net/ProxySelector;
10: invokespecial okhttp3.Address.<init>:(Ljava/lang/String;ILokhttp3/Dns;Ljavax/net/SocketFactory;Ljavax/net/ssl/SSLSocketFactory;Ljavax/net/ssl/HostnameVerifier;Lokhttp3/CertificatePinner;Lokhttp3/Authenticator;Ljava/net/Proxy;Ljava/util/List;Ljava/util/List;Ljava/net/ProxySelector;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lokhttp3/internal/http/RetryAndFollowUpInterceptor;
0 11 1 url Lokhttp3/HttpUrl;
1 11 2 sslSocketFactory Ljavax/net/ssl/SSLSocketFactory;
2 11 3 hostnameVerifier Ljavax/net/ssl/HostnameVerifier;
3 11 4 certificatePinner Lokhttp3/CertificatePinner;
MethodParameters:
Name Flags
url
private boolean recover(java.io.IOException, okhttp3.internal.connection.StreamAllocation, boolean, okhttp3.Request);
descriptor: (Ljava/io/IOException;Lokhttp3/internal/connection/StreamAllocation;ZLokhttp3/Request;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 2
aload 1
invokevirtual okhttp3.internal.connection.StreamAllocation.streamFailed:(Ljava/io/IOException;)V
1: aload 0
getfield okhttp3.internal.http.RetryAndFollowUpInterceptor.client:Lokhttp3/OkHttpClient;
invokevirtual okhttp3.OkHttpClient.retryOnConnectionFailure:()Z
ifne 2
iconst_0
ireturn
2: StackMap locals:
StackMap stack:
iload 3
ifeq 3
aload 4
invokevirtual okhttp3.Request.body:()Lokhttp3/RequestBody;
instanceof okhttp3.internal.http.UnrepeatableRequestBody
ifeq 3
iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 3
invokevirtual okhttp3.internal.http.RetryAndFollowUpInterceptor.isRecoverable:(Ljava/io/IOException;Z)Z
ifne 4
iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 2
invokevirtual okhttp3.internal.connection.StreamAllocation.hasMoreRoutes:()Z
ifne 5
iconst_0
ireturn
5: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lokhttp3/internal/http/RetryAndFollowUpInterceptor;
0 6 1 e Ljava/io/IOException;
0 6 2 streamAllocation Lokhttp3/internal/connection/StreamAllocation;
0 6 3 requestSendStarted Z
0 6 4 userRequest Lokhttp3/Request;
MethodParameters:
Name Flags
e
streamAllocation
requestSendStarted
userRequest
private boolean isRecoverable(java.io.IOException, boolean);
descriptor: (Ljava/io/IOException;Z)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
instanceof java.net.ProtocolException
ifeq 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof java.io.InterruptedIOException
ifeq 5
3: aload 1
instanceof java.net.SocketTimeoutException
ifeq 4
iload 2
ifne 4
iconst_1
ireturn
StackMap locals:
StackMap stack:
4: iconst_0
ireturn
5: StackMap locals:
StackMap stack:
aload 1
instanceof javax.net.ssl.SSLHandshakeException
ifeq 8
6: aload 1
invokevirtual java.io.IOException.getCause:()Ljava/lang/Throwable;
instanceof java.security.cert.CertificateException
ifeq 8
7: iconst_0
ireturn
8: StackMap locals:
StackMap stack:
aload 1
instanceof javax.net.ssl.SSLPeerUnverifiedException
ifeq 10
9: iconst_0
ireturn
10: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lokhttp3/internal/http/RetryAndFollowUpInterceptor;
0 11 1 e Ljava/io/IOException;
0 11 2 requestSendStarted Z
MethodParameters:
Name Flags
e
requestSendStarted
private okhttp3.Request followUpRequest(okhttp3.Response, okhttp3.Route);
descriptor: (Lokhttp3/Response;Lokhttp3/Route;)Lokhttp3/Request;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=12, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 1
new java.lang.IllegalStateException
dup
invokespecial java.lang.IllegalStateException.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
invokevirtual okhttp3.Response.code:()I
istore 3
start local 3 2: aload 1
invokevirtual okhttp3.Response.request:()Lokhttp3/Request;
invokevirtual okhttp3.Request.method:()Ljava/lang/String;
astore 4
start local 4 3: iload 3
lookupswitch { // 10
300: 14
301: 14
302: 14
303: 14
307: 12
308: 12
401: 11
407: 4
408: 38
503: 48
default: 54
}
4: StackMap locals: int java.lang.String
StackMap stack:
aload 2
ifnull 6
5: aload 2
invokevirtual okhttp3.Route.proxy:()Ljava/net/Proxy;
goto 7
6: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http.RetryAndFollowUpInterceptor.client:Lokhttp3/OkHttpClient;
invokevirtual okhttp3.OkHttpClient.proxy:()Ljava/net/Proxy;
7: StackMap locals:
StackMap stack: java.net.Proxy
astore 5
start local 5 8: aload 5
invokevirtual java.net.Proxy.type:()Ljava/net/Proxy$Type;
getstatic java.net.Proxy$Type.HTTP:Ljava/net/Proxy$Type;
if_acmpeq 10
9: new java.net.ProtocolException
dup
ldc "Received HTTP_PROXY_AUTH (407) code while not using proxy"
invokespecial java.net.ProtocolException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals: java.net.Proxy
StackMap stack:
aload 0
getfield okhttp3.internal.http.RetryAndFollowUpInterceptor.client:Lokhttp3/OkHttpClient;
invokevirtual okhttp3.OkHttpClient.proxyAuthenticator:()Lokhttp3/Authenticator;
aload 2
aload 1
invokeinterface okhttp3.Authenticator.authenticate:(Lokhttp3/Route;Lokhttp3/Response;)Lokhttp3/Request;
areturn
end local 5 11: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http.RetryAndFollowUpInterceptor.client:Lokhttp3/OkHttpClient;
invokevirtual okhttp3.OkHttpClient.authenticator:()Lokhttp3/Authenticator;
aload 2
aload 1
invokeinterface okhttp3.Authenticator.authenticate:(Lokhttp3/Route;Lokhttp3/Response;)Lokhttp3/Request;
areturn
12: StackMap locals:
StackMap stack:
aload 4
ldc "GET"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 14
aload 4
ldc "HEAD"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 14
13: aconst_null
areturn
14: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http.RetryAndFollowUpInterceptor.client:Lokhttp3/OkHttpClient;
invokevirtual okhttp3.OkHttpClient.followRedirects:()Z
ifne 15
aconst_null
areturn
15: StackMap locals:
StackMap stack:
aload 1
ldc "Location"
invokevirtual okhttp3.Response.header:(Ljava/lang/String;)Ljava/lang/String;
astore 6
start local 6 16: aload 6
ifnonnull 17
aconst_null
areturn
17: StackMap locals: okhttp3.internal.http.RetryAndFollowUpInterceptor okhttp3.Response okhttp3.Route int java.lang.String top java.lang.String
StackMap stack:
aload 1
invokevirtual okhttp3.Response.request:()Lokhttp3/Request;
invokevirtual okhttp3.Request.url:()Lokhttp3/HttpUrl;
aload 6
invokevirtual okhttp3.HttpUrl.resolve:(Ljava/lang/String;)Lokhttp3/HttpUrl;
astore 7
start local 7 18: aload 7
ifnonnull 19
aconst_null
areturn
19: StackMap locals: okhttp3.HttpUrl
StackMap stack:
aload 7
invokevirtual okhttp3.HttpUrl.scheme:()Ljava/lang/String;
aload 1
invokevirtual okhttp3.Response.request:()Lokhttp3/Request;
invokevirtual okhttp3.Request.url:()Lokhttp3/HttpUrl;
invokevirtual okhttp3.HttpUrl.scheme:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
istore 8
start local 8 20: iload 8
ifne 21
aload 0
getfield okhttp3.internal.http.RetryAndFollowUpInterceptor.client:Lokhttp3/OkHttpClient;
invokevirtual okhttp3.OkHttpClient.followSslRedirects:()Z
ifne 21
aconst_null
areturn
21: StackMap locals: int
StackMap stack:
aload 1
invokevirtual okhttp3.Response.request:()Lokhttp3/Request;
invokevirtual okhttp3.Request.newBuilder:()Lokhttp3/Request$Builder;
astore 9
start local 9 22: aload 4
invokestatic okhttp3.internal.http.HttpMethod.permitsRequestBody:(Ljava/lang/String;)Z
ifeq 35
23: aload 4
invokestatic okhttp3.internal.http.HttpMethod.redirectsWithBody:(Ljava/lang/String;)Z
istore 10
start local 10 24: aload 4
invokestatic okhttp3.internal.http.HttpMethod.redirectsToGet:(Ljava/lang/String;)Z
ifeq 27
25: aload 9
ldc "GET"
aconst_null
invokevirtual okhttp3.Request$Builder.method:(Ljava/lang/String;Lokhttp3/RequestBody;)Lokhttp3/Request$Builder;
pop
26: goto 31
27: StackMap locals: okhttp3.Request$Builder int
StackMap stack:
iload 10
ifeq 28
aload 1
invokevirtual okhttp3.Response.request:()Lokhttp3/Request;
invokevirtual okhttp3.Request.body:()Lokhttp3/RequestBody;
goto 29
StackMap locals:
StackMap stack:
28: aconst_null
StackMap locals:
StackMap stack: okhttp3.RequestBody
29: astore 11
start local 11 30: aload 9
aload 4
aload 11
invokevirtual okhttp3.Request$Builder.method:(Ljava/lang/String;Lokhttp3/RequestBody;)Lokhttp3/Request$Builder;
pop
end local 11 31: StackMap locals:
StackMap stack:
iload 10
ifne 35
32: aload 9
ldc "Transfer-Encoding"
invokevirtual okhttp3.Request$Builder.removeHeader:(Ljava/lang/String;)Lokhttp3/Request$Builder;
pop
33: aload 9
ldc "Content-Length"
invokevirtual okhttp3.Request$Builder.removeHeader:(Ljava/lang/String;)Lokhttp3/Request$Builder;
pop
34: aload 9
ldc "Content-Type"
invokevirtual okhttp3.Request$Builder.removeHeader:(Ljava/lang/String;)Lokhttp3/Request$Builder;
pop
end local 10 35: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 7
invokevirtual okhttp3.internal.http.RetryAndFollowUpInterceptor.sameConnection:(Lokhttp3/Response;Lokhttp3/HttpUrl;)Z
ifne 37
36: aload 9
ldc "Authorization"
invokevirtual okhttp3.Request$Builder.removeHeader:(Ljava/lang/String;)Lokhttp3/Request$Builder;
pop
37: StackMap locals:
StackMap stack:
aload 9
aload 7
invokevirtual okhttp3.Request$Builder.url:(Lokhttp3/HttpUrl;)Lokhttp3/Request$Builder;
invokevirtual okhttp3.Request$Builder.build:()Lokhttp3/Request;
areturn
end local 9 end local 8 end local 7 end local 6 38: StackMap locals: okhttp3.internal.http.RetryAndFollowUpInterceptor okhttp3.Response okhttp3.Route int java.lang.String
StackMap stack:
aload 0
getfield okhttp3.internal.http.RetryAndFollowUpInterceptor.client:Lokhttp3/OkHttpClient;
invokevirtual okhttp3.OkHttpClient.retryOnConnectionFailure:()Z
ifne 40
39: aconst_null
areturn
40: StackMap locals:
StackMap stack:
aload 1
invokevirtual okhttp3.Response.request:()Lokhttp3/Request;
invokevirtual okhttp3.Request.body:()Lokhttp3/RequestBody;
instanceof okhttp3.internal.http.UnrepeatableRequestBody
ifeq 42
41: aconst_null
areturn
42: StackMap locals:
StackMap stack:
aload 1
invokevirtual okhttp3.Response.priorResponse:()Lokhttp3/Response;
ifnull 45
43: aload 1
invokevirtual okhttp3.Response.priorResponse:()Lokhttp3/Response;
invokevirtual okhttp3.Response.code:()I
sipush 408
if_icmpne 45
44: aconst_null
areturn
45: StackMap locals:
StackMap stack:
aload 0
aload 1
iconst_0
invokevirtual okhttp3.internal.http.RetryAndFollowUpInterceptor.retryAfter:(Lokhttp3/Response;I)I
ifle 47
46: aconst_null
areturn
47: StackMap locals:
StackMap stack:
aload 1
invokevirtual okhttp3.Response.request:()Lokhttp3/Request;
areturn
48: StackMap locals:
StackMap stack:
aload 1
invokevirtual okhttp3.Response.priorResponse:()Lokhttp3/Response;
ifnull 51
49: aload 1
invokevirtual okhttp3.Response.priorResponse:()Lokhttp3/Response;
invokevirtual okhttp3.Response.code:()I
sipush 503
if_icmpne 51
50: aconst_null
areturn
51: StackMap locals:
StackMap stack:
aload 0
aload 1
ldc 2147483647
invokevirtual okhttp3.internal.http.RetryAndFollowUpInterceptor.retryAfter:(Lokhttp3/Response;I)I
ifne 53
52: aload 1
invokevirtual okhttp3.Response.request:()Lokhttp3/Request;
areturn
53: StackMap locals:
StackMap stack:
aconst_null
areturn
54: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 55 0 this Lokhttp3/internal/http/RetryAndFollowUpInterceptor;
0 55 1 userResponse Lokhttp3/Response;
0 55 2 route Lokhttp3/Route;
2 55 3 responseCode I
3 55 4 method Ljava/lang/String;
8 11 5 selectedProxy Ljava/net/Proxy;
16 38 6 location Ljava/lang/String;
18 38 7 url Lokhttp3/HttpUrl;
20 38 8 sameScheme Z
22 38 9 requestBuilder Lokhttp3/Request$Builder;
24 35 10 maintainBody Z
30 31 11 requestBody Lokhttp3/RequestBody;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
userResponse
route
private int retryAfter(okhttp3.Response, int);
descriptor: (Lokhttp3/Response;I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ldc "Retry-After"
invokevirtual okhttp3.Response.header:(Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 1: aload 3
ifnonnull 3
2: iload 2
ireturn
3: StackMap locals: java.lang.String
StackMap stack:
aload 3
ldc "\\d+"
invokevirtual java.lang.String.matches:(Ljava/lang/String;)Z
ifeq 5
4: aload 3
invokestatic java.lang.Integer.valueOf:(Ljava/lang/String;)Ljava/lang/Integer;
invokevirtual java.lang.Integer.intValue:()I
ireturn
5: StackMap locals:
StackMap stack:
ldc 2147483647
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lokhttp3/internal/http/RetryAndFollowUpInterceptor;
0 6 1 userResponse Lokhttp3/Response;
0 6 2 defaultDelay I
1 6 3 header Ljava/lang/String;
MethodParameters:
Name Flags
userResponse
defaultDelay
private boolean sameConnection(okhttp3.Response, okhttp3.HttpUrl);
descriptor: (Lokhttp3/Response;Lokhttp3/HttpUrl;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual okhttp3.Response.request:()Lokhttp3/Request;
invokevirtual okhttp3.Request.url:()Lokhttp3/HttpUrl;
astore 3
start local 3 1: aload 3
invokevirtual okhttp3.HttpUrl.host:()Ljava/lang/String;
aload 2
invokevirtual okhttp3.HttpUrl.host:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 5
2: aload 3
invokevirtual okhttp3.HttpUrl.port:()I
aload 2
invokevirtual okhttp3.HttpUrl.port:()I
if_icmpne 5
3: aload 3
invokevirtual okhttp3.HttpUrl.scheme:()Ljava/lang/String;
aload 2
invokevirtual okhttp3.HttpUrl.scheme:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 5
4: iconst_1
ireturn
StackMap locals: okhttp3.HttpUrl
StackMap stack:
5: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lokhttp3/internal/http/RetryAndFollowUpInterceptor;
0 6 1 response Lokhttp3/Response;
0 6 2 followUp Lokhttp3/HttpUrl;
1 6 3 url Lokhttp3/HttpUrl;
MethodParameters:
Name Flags
response
followUp
}
SourceFile: "RetryAndFollowUpInterceptor.java"
InnerClasses:
public final Type = java.net.Proxy$Type of java.net.Proxy
public abstract Chain = okhttp3.Interceptor$Chain of okhttp3.Interceptor
public Builder = okhttp3.Request$Builder of okhttp3.Request
public Builder = okhttp3.Response$Builder of okhttp3.Response