2016-06-02 31 views
7

Avevo seguito questo link per aggiornare il token di accesso. Mentre l'aggiunta di Authenticator per okHttp ottenere l'errore di fine imprevisto di flusso sulla okhttp3 dalla chiamata retrofit indietro onFailure metodoFine imprevista del flusso su okhttp3

public class TokenAuthenticator implements Authenticator { 
    AccessTokenRefreshModel accessTokenRefreshModel = null; 

    @Override 
    public Request authenticate(Route route, Response response) throws IOException { 
     Call<UserLogin> call = iService.refreshAccessToken(BuildConfig.CLIENT_ID, refreshToken); 
     UserLogin userLogin = call.execute().body(); 
     // Add new header to rejected request and retry it 
     return response.request().newBuilder() 
       .header(AUTHORIZATION, userLogin.getAccessToken()) 
       .build(); 
    } 
} 


Call<User> call = iService.createuser(user); 
call.enqueue(new Callback<User>() { 
    @Override 
    public void onResponse(Call<User> call, Response<User> response) { 

    } 

    @Override 
    public void onFailure(Call<User> call, Throwable t) { 
    //**Unexpected end of stream on okhttp3** 
    } 
+0

Si sta utilizzando logging intercettore? – Debanjan

+0

@Debanjan sì sto usando l'intercettore di registrazione. –

+0

Rimuovere l'intercettore di registrazione e controllare una volta. – Debanjan

risposta

0

invece di

UserLogin userLogin = call.execute().body(); 

provare

retrofit2.Response<UserLogin> tokenResponse = call.execute(); 
Problemi correlati