В Android я хотел бы использовать новый OkHttp 2.0 для запроса некоторых URL-адресов, но я бы хотел больше контролировать перенаправления. Я уже нашел вариант включить или отключить следующие HTTPS → HTTP или HTTP → переадресации HTTPS, но я бы не хотел следовать перенаправлениям, поэтому я могу как можно скорее обновить свой графический интерфейс и выбрать, следует ли следовать им из логика приложения. Я не вижу возможности сделать это. Возможно ли, и если да, то как я могу это достичь?
Можно ли отключить следующие перенаправления в OkHttp 2.0?
Ответ 1
Да, это возможно в версии 2.3.0
final OkHttpClient client = new OkHttpClient();
client.setFollowRedirects(false);
Для 3.x
OkHttpClient client = new OkHttpClient().newBuilder()
.followRedirects(false)
.followSslRedirects(false)
.build();
Ответ 2
Похоже, что это невозможно, но он, предположительно, войдет в следующий релиз, по крайней мере, согласно некоторым из этих комментариев по связанной проблеме Github.
Edit: Похоже, что это возможно с помощью OkUrlFactory
, который является частью подмодуля okhttp-urlconnection (до сих пор не понял фактическую цель этого, но выглядит как замена Http(s)UrlConnection
).
Изменить 2: На самом деле, держитесь; он выглядит как он реализован на главном компьютере. Тем не менее, похоже, что это не привело к созданию моментального снимка версии 2.0.0.
Ответ 3
Try
client.setFollowRedirects(true|false);
или, если вы используете модуль HTTPUrlConnection:
HTTPUrlConnection.setFollowRedirects(true|false);