web-dev-qa-db-fra.com

Est-il possible de désactiver les redirections suivantes dans OkHttp 2.0?

Sous Android, j'aimerais utiliser le nouveau OkHttp 2.0 pour demander des URL, mais j'aimerais plus de contrôle sur les redirections. J'ai déjà trouvé l'option d'activer ou de désactiver les redirections HTTPS → HTTP ou HTTP → HTTPS, mais je ne souhaite suivre aucune redirection, je peux donc mettre à jour mon interface graphique dès que possible et choisir de les suivre à partir de logique d'application. Je ne vois pas d'option pour ce faire. Est-il possible, et si oui, comment puis-je y parvenir?

40
Dan Hulme

Oui c'est possible dans la version 2.3.0

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

Pour 3.x

OkHttpClient client = new OkHttpClient().newBuilder()
                                            .followRedirects(false)
                                            .followSslRedirects(false)
                                            .build();
60
Arik

Il semble que ce ne soit pas possible, mais il sera censé figurer dans la prochaine version, du moins selon certains de ces commentaires sur un problème connexe sur Github .

Edit: Il semble que cela pourrait être possible via OkUrlFactory, qui fait partie du sous-module okhttp-urlconnection (n'a toujours pas compris le but réel de cela, mais il ressemble à une Http(s)UrlConnection remplacement).

Edit 2: En fait, attendez; il ressemble à il est implémenté sur master . Cependant, il semble également que cela ne soit pas entré dans l'instantané de la version 2.0.0.

2
kibibyte

Essayer

client.setFollowRedirects(true|false);

ou, si vous utilisez le module HTTPUrlConnection:

HTTPUrlConnection.setFollowRedirects(true|false);
1
Max Hille