7

I had followed this link to refresh access token. While adding Authenticator to okHttp getting error of Unexpected end of stream on okhttp3 from retrofit call back onFailure method

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** 
  }
Community
  • 1
  • 1
c__c
  • 1,574
  • 1
  • 19
  • 39

1 Answers1

0

instead of

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

try

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