2014-11-28 14 views
6

Ho uno strano problema. Ho creato un'app per Android che utilizza Retrofit library per chiamare un servizio web. Ho ampiamente testato l'app, su molti dispositivi e la versione di Android. Su tutti funziona bene, tranne uno: un Acer Iconia Tab A500 con Android 4.0.3 (Livello API: 15). Per questo, ogni volta che il servizio Web si chiama, retrofit mi restituisce il seguente errore:Errore di restituzione di retrofit 307, chiamata al servizio web in Android

11-28 16:08:59.700: W/System.err(4436): retrofit.RetrofitError: 307 Temporary Redirect 

Sono sicuro che il codice che ho ragione, e io non riesco a capire dove possa essere il problema. Eventuali suggerimenti?

risposta

0

Provare a fare in modo che l'applicazione segua i reindirizzamenti. ecco come fare

Con OkHttp:

public static void setFollowRedirects (boolean auto) 
public OkHttpClient setFollowProtocolRedirects(boolean followProtocolRedirects) 

Con HttpURLConnection:

public static void setFollowRedirects (boolean auto) 
public void setInstanceFollowRedirects (boolean followRedirects) 

See discussione here.

+0

mi può dire dove e cosa impostare in OkHttp – Hunt

1

È possibile che il nuovo telefono non abbia accesso a Internet e/o al server. Era quello che non andava nel mio telefono quando ho ricevuto l'errore.

Spero che questo aiuti!

0

Anche io mi trovavo di fronte allo stesso problema, il server reindirizza ad un altro collegamento quando ho premuto il link di base, l'ho risolto ottenendo il collegamento del server di reindirizzamento e poi ho premuto l'url per accedere a tutte le altre API web.

per ottenere reindirizzare link:

String redirectUrl=responseHeaders.get("location"); 

Nota: In volley possiamo usare riprovare la politica, come abbiamo più questo codice 307 e può riprovare sulla localizzazione (reindirizzamento URL).

Se chiunque abbia qualsiasi altra soluzione migliore di questo problema fatemelo sapere ..