我正在使用Retrofit对Web服务做一些请求,但直到最近一切都出错了,我开始得到标题中提到的异常。我有一个基类,基本上是这样的:
protected BaseService(int version) {
OkHttpClient.Builder builder = new OkHttpClient.Builder();
if (cookieJar == null) {
CookieManager cookieManager = new CookieManager();
cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
cookieJar = new JavaNetCookieJar(cookieManager);
}
builder.cookieJar(cookieJar);
if (BuildConfig.IS_DEBUG) {
BASE_URL = "http://nasko.dev.trainingassetsgateway.com";
builder.interceptors().add(new Interceptor() {
@Override
public Response intercept(Interceptor.Chain chain) throws IOException {
Request newRequest = chain
.request()
.newBuilder()
.addHeader("Authorization", "Basic REMOVED")
.build();
return chain.proceed(newRequest);
}
});
} else {
BASE_URL = "https://trainingassetsgateway.com";
}
API_URL = BASE_URL + "/mapi/" + version + "/";
client = new Retrofit
.Builder()
.baseUrl(API_URL)
.client(okHttpClient = builder.build())
.addConverterFactory(GsonConverterFactory.create())
.build();
}
问题始于拦截器链。我已经将它跟踪到HttpEngine.createAddress方法,其中正在创建一个新的Address实例。
正如所见,URL的主机部分在那里,但是稍后在堆栈中的下一次调用中,“uriHost”为空,而它应该与“Watches”窗口中看到的相同。 / p>
从那里它到达主机为空并抛出异常的点。我做错了什么或者错过了什么?
答案 0 :(得分:0)
如果有人进入此状态,只需删除手机上的应用即可。我希望我能早点做到这一点......