Android - Retrofit 2 - Authenticator Ergebnis

Ich versuche Retrofit (2.0.0-beta3) zu verwenden, aber wenn ich einen Authenticator verwende, um einen Token hinzuzufügen, kann ich die Daten scheinbar nicht aus dem synchronen Aufruf abrufen. Unsere Protokollierung im Back-End zeigt nur eine Vielzahl von Anmeldeversuchen, aber ich kann die Daten nicht aus dem Body abrufen, um sie tatsächlich in den Header einzufügen.

    public static class TokenAuthenticator implements Authenticator {
    @Override
    public Request authenticate(Route route, Response response) throws IOException {
        // Refresh your access_token using a synchronous api request
        UserService userService = createService(UserService.class);

        Call<Session> call = userService.emailLogin(new Credentials("handle", "pass"));

        // This call is made correctly, as it shows up on the back-end.
        Session body = call.execute().body();

        // This line is never hit.
        Logger.d("Session token: " + body.token);

        // Add new header to rejected request and retry it
        return response.request().newBuilder()
                .header("Auth-Token", body.token)
                .build();
        }
    }

Ich bin mir nicht ganz sicher, warum es überhaupt nichts druckt. Für Tipps zur Lösung dieses Problems sind wir dankbar, dass Sie sich die Zeit genommen haben, uns zu helfen.

Dies sind die Quellen, die ich gelesen habe, um Retrofit zu implementieren.

Mit Authenticator:

https: //stackoverflow.com/a/31624433/310617

https: //github.com/square/okhttp/wiki/Recipes#handling-authenticatio

Synchron telefonieren mit Retrofit 2:

https: //futurestud.io/blog/retrofit-synchronous-and-asynchronous-request

Antworten auf die Frage(4)

Ihre Antwort auf die Frage