okhttp3上意外的流结束

Raj*_*dka 7 retrofit2 okhttp3

我已按照此链接刷新访问令牌.添加Authenticator到okHttp从okTttp3获取错误的unnexpected流结束从改造回调onFailure方法

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** 
  }
Run Code Online (Sandbox Code Playgroud)

小智 0

代替

UserLogin userLogin = call.execute().body();
Run Code Online (Sandbox Code Playgroud)

尝试

retrofit2.Response<UserLogin> tokenResponse = call.execute();
Run Code Online (Sandbox Code Playgroud)