Можно ли отключить следующие перенаправления в OkHttp 2.0?

В Android я хотел бы использовать новый OkHttp 2.0 для запроса некоторых URL-адресов, но мне хотелось бы больше контролировать перенаправления. Я уже нашел возможность включить или отключить следующие перенаправления HTTPS → HTTP или HTTP → HTTPS, но я бы не хотел следовать каким-либо перенаправлениям, поэтому я могу как можно скорее обновить свой графический интерфейс и выбрать, следует ли им следовать из логика приложения. Я не вижу возможности сделать это. Возможно ли это, и если да, то как я могу этого добиться?


person Dan Hulme    schedule 02.06.2014    source источник


Ответы (3)


Да, это возможно в версии 2.3.0

final OkHttpClient client = new OkHttpClient();
client.setFollowRedirects(false);

Для 3.x

OkHttpClient client = new OkHttpClient().newBuilder()
                                            .followRedirects(false)
                                            .followSslRedirects(false)
                                            .build();
person Arik    schedule 25.03.2015
comment
как это сделать в версии 3.x ? - person Hunt; 24.02.2016
comment
@Hunt, ты найдешь способ сделать это в версии 3.x? - person Syeda Zunaira; 10.03.2016
comment
@SyedaZunairah Я добавил образец для 3.x - person Dawid Drozd; 06.04.2016
comment
@DawidDrozd Спасибо :) - person Syeda Zunaira; 07.04.2016

Кажется, что это невозможно, но предположительно это войдет в следующий релиз, по крайней мере, согласно некоторым из этих комментариев на связанная проблема на Github.

Редактировать: похоже, это возможно через OkUrlFactory, который является частью подмодуля okhttp-urlconnection (до сих пор не понял фактической цели этого, но это похоже на замену Http(s)UrlConnection).

Редактировать 2: На самом деле, подождите; это выглядит как это реализовано на мастере. Однако также похоже, что это не попало в моментальный снимок выпуска 2.0.0.

person kibibyte    schedule 11.08.2014

Пытаться

client.setFollowRedirects(true|false);

или, если используется модуль HTTPUrlConnection:

HTTPUrlConnection.setFollowRedirects(true|false);
person Max Hille    schedule 06.08.2014