【发布时间】:2016-04-30 15:08:31
【问题描述】:
我正在使用以下代码行为使用 Retrofit2 发送的所有请求添加默认标头:
private static OkHttpClient defaultHttpClient = new OkHttpClient();
static {
defaultHttpClient.networkInterceptors().add(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request().newBuilder()
.addHeader("Accept", "Application/JSON").build();
return chain.proceed(request);
}
});
}
将retrofit升级到beta-3版本后,我还必须将OkHttp升级到OkHttp3(实际上我只是将包名从okhttp更改为okhttp3,该库包含在retrofit中)。之后我从这一行得到例外:
defaultHttpClient.networkInterceptors().add(new Interceptor());
原因:java.lang.UnsupportedOperationException 在 java.util.Collections$UnmodifiableCollection.add(Collections.java:932)
原因:java.lang.ExceptionInInitializerError
这里有什么问题?
【问题讨论】:
标签: android retrofit okhttp retrofit2 okhttp3