我遵循这个link来刷新访问令牌。在okHttp中添加身份验证器时,从对onFailure方法的改进中获得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**
}发布于 2016-10-04 11:57:42
而不是
UserLogin userLogin = call.execute().body();试一试
retrofit2.Response<UserLogin> tokenResponse = call.execute();https://stackoverflow.com/questions/37589243
复制相似问题