【问题标题】:Retrofit Java.lang.IllegalArgumentException host == null改造 Java.lang.IllegalArgumentException 主机 == null
【发布时间】:2016-07-01 07:09:14
【问题描述】:

我正在使用 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();
}

问题始于拦截器链。我已将其追溯到正在创建 Address 的新实例的 HttpEngine.createAddress 方法。

正如所见 URL 的主机部分在那里,但稍后在堆栈中的下一次调用中,“uriHost”为空,而它应该与在“Watches”窗口中看到的相同。

从那里到达主机为空并引发异常的点。我做错了什么还是错过了什么?

【问题讨论】:

  • 这两个网址都会发生吗??
  • 是的,两者都发生了。它不是来自cookie jar,也不是来自拦截器
  • 使用 BASE_URL 作为基本 url 而不是 API_URL
  • 试过了,并将 URL 的其余部分移动到服务,但仍然不起作用。

标签: java android retrofit okhttp3


【解决方案1】:

如果有人遇到这种情况,只需删除手机上的应用即可。我希望我早点这样做......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-27
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    • 1970-01-01
    • 1970-01-01
    • 2013-04-24
    • 2022-07-31
    相关资源
    最近更新 更多