2
Retrofitを使用してWebサービスへのリクエストを行っていますが、最近まですべてが間違っていて、タイトルに記載されている例外が発生し始めました。基本的には次のような基本クラスがあります。Retrofit Java.lang.IllegalArgumentException host == null
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」の次の呼び出しでそれがで見ているのと同じものだったはずですが、nullで見られるように
「時計」ウィンドウ。そこから
それはホストがnullで、例外がスローされる点に達します。何か間違っているのか何か不足しているのでしょうか?
これは両方のURLに起こりますか? – SripadRaj
はい、それは両方に起こります。クッキージャーからではなく、インターセプターからではありません。 – atanaspl
ベースURLとしてBASE_URLを使用し、API_URLでは使用しません。 – user3215142