okhttp, выбрасывающий NullPointerException при вызове interceptor.intercept (chain) - PullRequest
0 голосов
/ 10 мая 2019

Я использую сгенерированный код swaggercodegen для доступа к веб-службе REST.Он использует библиотеку okttp 2.7.5 для базовой http-связи.Это постоянно выдает java.lang.NullPointerException, например, приведенную ниже трассировку стека:

java.lang.NullPointerException
at com.squareup.okhttp.Call$ApplicationInterceptorChain.proceed(Call.java:232)
at com.squareup.okhttp.Call.getResponseWithInterceptorChain(Call.java:205)
at com.squareup.okhttp.Call.execute(Call.java:80)

Похоже, что рассматриваемая оскорбительная строка находится на втором месте ниже:

Interceptor interceptor = client.interceptors().get(index);
Response interceptedResponse = interceptor.intercept(chain);

Теперь она будет выдавать NullPointerExceptionна второй строке, только если перехватчик нулевой.Не уверен, почему он получает объект из списка, который является нулевым?

Стоит отметить, что мы настраиваем пользовательский перехватчик для удаления заголовка Content-Type из запроса следующим образом:

api.getApiClient().getHttpClient().interceptors().add(new Interceptor() {
    @Override
    public Response intercept(Chain chain) throws IOException {
        Request newRequest = chain
            .request()
            .newBuilder()
            .removeHeader("Content-Type")
            .build();
        return chain.proceed(newRequest);
    }
});

Вышеупомянутый метод вызывается из нестатического метода.

Любое понимание того, что я делаю неправильно?Или это потенциальная ошибка в охттп?

...