Как правильно обрабатывать перенаправление как ответ в retrofit2 - PullRequest
0 голосов
/ 20 мая 2018

Я работаю с API, который возвращает 308 при успешном создании ресурса с запросом POST?Как мне справиться с этим лучше всего с retrofit2?

Или если API не вернуть 308?

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

внутри onResponse

if(response.code() == 308)
{
    //created done
}
 else 
{
    //not done
}
0 голосов
/ 20 мая 2018

Создать Interceptor, как показано ниже, а затем вызвать addInterceptor(getRedirectInterceptor()) (на OkHttpClient.Builder экземпляр)

protected Interceptor getRedirectInterceptor() {
    return new Interceptor() {
        @Override
        public okhttp3.Response intercept(Chain chain) throws IOException {
            Request request = chain.request();
            okhttp3.Response response = chain.proceed(request);
            if (response.code() == 308) {
                request = request.newBuilder()
                        .url(response.header("Location"))
                        .build();

                response = chain.proceed(request);
            }

            return response;
        }
    };
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...