tyc*_*czj 6 android retrofit2 okhttp3
如果我创建请求并且该请求返回4xx错误,则Retrofit/Okhttp会继续重试请求.我设置retryOnConnectionFailure为false并设置15秒的超时但这一切似乎都被忽略了.我错过了什么?
private static OkHttpClient getClient() {
return new OkHttpClient.Builder()
.addNetworkInterceptor(new HttpLoggingInterceptor().setLevel(BuildConfig.DEBUG ? HttpLoggingInterceptor.Level.BODY : HttpLoggingInterceptor.Level.NONE))
.readTimeout(15, TimeUnit.SECONDS)
.connectTimeout(15, TimeUnit.SECONDS)
.retryOnConnectionFailure(false)
.addInterceptor(chain -> {
Request request = chain.request()
.newBuilder()
.build();
return chain.proceed(request);
}).build();
}
public static Retrofit getRetrofitClient(Gson gson){
Retrofit.Builder builder = new Retrofit.Builder()
.baseUrl(baseUrl)
.client(OkHttpLogger.getClient());
if(gson != null){
builder.addConverterFactory(GsonConverterFactory.create(gson));
}else{
builder.addConverterFactory(GsonConverterFactory.create());
}
return builder.build();
}
Run Code Online (Sandbox Code Playgroud)
我正在使用改造2.3.0和okhttp版本3.8.1
编辑
我确实看到的一件事是,如果我设置5秒的超时,它完美地保持重试5秒然后给我一个失败,但是如果我把它提高到10秒它只是继续前进并最终停止大约2分钟.
| 归档时间: |
|
| 查看次数: |
1419 次 |
| 最近记录: |