2014-11-28 27 views
6

Mam dziwny problem. Stworzyłem aplikację na Androida, która używa numeru Retrofit library do wywoływania usługi internetowej. Testowałem aplikację na wielu urządzeniach i wersji Androida. Wszystko działa dobrze, z wyjątkiem jednego:: Acer Iconia Tab A500 z Androidem 4.0.3 (poziom API: 15). Dla tego jednego, za każdym razem usługa WWW nazywa, retrofit powrócić mi następujący błąd:Retrofit zwraca błąd 307, wywołanie usługi internetowej w Androidzie

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

Jestem pewien kod mam rację, a ja nie mogę dowiedzieć się, gdzie może być problem. Jakieś sugestie?

Odpowiedz

0

Spróbuj wykonać przekierowania z aplikacji podążającej za aplikacją. Oto jak to zrobić

Z OkHttp:

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

Z HttpURLConnection:

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

patrz dyskusja here.

+0

może mi powiedzieć, gdzie i co ustawić w OkHttp – Hunt

1

Możliwe, że nowy telefon nie miał dostępu do Internetu i/lub serwera. To właśnie było nie tak z moim telefonem, kiedy dostałem błąd.

Mam nadzieję, że to pomoże!

0

Miałem też do czynienia z tym samym problemem, serwer przekierowywał się do innego linku po trafieniu do linku podstawowego, rozwiązałem go, uzyskując link do serwera przekierowującego, a następnie trafiłem ten URL, aby uzyskać dostęp do wszystkich innych internetowych API.

uzyskać przekierowanie link:

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

Uwaga: W woleja możemy użyć ponownie politykę, ponieważ mamy ten kod 307 i można ponowić próbę na miejscu (przekierowanie URL).

Jeśli ktoś mający żadnego innego najlepsze rozwiązanie tego problemu proszę dać mi znać ..