2016-07-01 7 views
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で見られるように

createAddress from debugger

「時計」ウィンドウ。そこから

uriHost is null from debugger

それはホストがnullで、例外がスローされる点に達します。何か間違っているのか何か不足しているのでしょうか?

+0

これは両方のURLに起こりますか? – SripadRaj

+0

はい、それは両方に起こります。クッキージャーからではなく、インターセプターからではありません。 – atanaspl

+0

ベースURLとしてBASE_URLを使用し、API_URLでは使用しません。 – user3215142

答えて

0

誰かがこれに入ってきたら、電話でアプリを削除してください。私はこれをもっと早くやりたかったです...

関連する問題