2016-06-02 8 views
7

Ich war diesem link gefolgt, um Zugriffstoken zu aktualisieren. Beim Hinzufügen von Authenticator zu okHttp immer Fehler von Unerwartetes Ende des Stroms auf okhttp3 von Retrofit-Rückruf onFailure MethodeUnerwartetes Ende des Streams auf 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

Sind Sie mit Logging Interceptor? – Debanjan

+0

@Debanjan ja ich benutze Abholzer. –

+0

Entfernen Sie den Logging Interceptor und überprüfen Sie es einmal. – Debanjan

Antwort

0

statt

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

versuchen

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