mirror of
https://github.com/TonyJiangWJ/Auto.js.git
synced 2026-06-29 21:03:01 +08:00
尝试修复 SocketTimeoutException的问题
This commit is contained in:
parent
863af6badf
commit
e4dbd0da38
@ -1,5 +1,6 @@
|
||||
package com.stardust.autojs.core.http;
|
||||
|
||||
import java.net.SocketTimeoutException;
|
||||
import java.util.Collections;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@ -19,13 +20,24 @@ public class MutableOkHttp extends OkHttpClient {
|
||||
private long mTimeout = 30 * 1000;
|
||||
private Interceptor mRetryInterceptor = chain -> {
|
||||
Request request = chain.request();
|
||||
Response response = chain.proceed(request);
|
||||
Response response = null;
|
||||
int tryCount = 0;
|
||||
while (!response.isSuccessful() && tryCount < getMaxRetries()) {
|
||||
do {
|
||||
boolean succeed;
|
||||
try {
|
||||
response = chain.proceed(request);
|
||||
succeed = response.isSuccessful();
|
||||
} catch (SocketTimeoutException e) {
|
||||
succeed = false;
|
||||
if (tryCount >= getMaxRetries()) {
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
if (succeed || tryCount >= getMaxRetries()) {
|
||||
return response;
|
||||
}
|
||||
tryCount++;
|
||||
response = chain.proceed(request);
|
||||
}
|
||||
return response;
|
||||
} while (true);
|
||||
};
|
||||
|
||||
public MutableOkHttp() {
|
||||
@ -64,6 +76,7 @@ public class MutableOkHttp extends OkHttpClient {
|
||||
|
||||
|
||||
public void setTimeout(long timeout) {
|
||||
mTimeout = timeout;
|
||||
muteClient();
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user