问题:
今天,我在OkHttp中遇到了一个例外。
原因: java.lang.IllegalStateException:预期Android级别为21+,但为19
我知道Okhttp不再支持<21版本的设备了。
来自Okhttp的github页面 &也来自github问题,来自okhttp版本3.13 -
OkHttp工作在Android 5.0+ (API级21+)和8+上。
这是一个非常大的变化,因为我的所有项目都运行在minSdkVersion = 16上。或者至少19岁。
我试过什么?
我需要的是:
--我不希望只对使用的10%设备(如果我将minSdkVersion提高到21+)的支持删除。我使用Okhttp为所有Retrofit的请求添加一个公共的头。
有没有一种不使用Okhttp来添加公共标题的方法?
发布于 2019-03-20 10:53:48
您可以使用Interceptor添加所有您想要的标题,如下所示:
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.addInterceptor(new Interceptor() {
Request request;
@Override
public Response intercept(@NonNull Chain chain) throws IOException {
request = chain.request().newBuilder().addHeader("Authorization", "Bearer " + GlobalClass.accessToken)
.addHeader("Accept", "application/json").build();
return chain.proceed(request);
}
}).addNetworkInterceptor(httpLoggingInterceptor);然后用这个返回建造者
return builder.connectTimeout(15, TimeUnit.SECONDS)
.writeTimeout(25, TimeUnit.SECONDS)
.readTimeout(15, TimeUnit.SECONDS).build();https://stackoverflow.com/questions/55258307
复制相似问题