Wie konvertiere ich einen erfolgreichen Response-Body mithilfe von Retrofit in einen bestimmten Typ?

Im asynchronen Modus Nachrüstaufrufe

public void success(T t, Response rawResponse)

were t ist die konvertierte Antwort und rawResponse ist die rohe Antwort. Auf diese Weise können Sie sowohl auf die unformatierte als auch auf die konvertierte Antwort zugreifen.

Im Synchronisationsmodus können Sie entweder die konvertierte Antwort erhaltenODE die rohe Antwort

umgewandelte Antwort

@GET("/users/list")
List<User> userList();

raw antwort

@GET("/users/list")
Response userList();

Das Response-Objekt verfügt über eine Methode zum Abrufen des Körpers

TypedInput  getBody()

und die Retrofit-API hat eine Konverterklasse, die dies in ein Java-Objekt konvertieren kann.

Object fromBody(TypedInput body,Type type)

Aber ich kann nicht herausfinden, wie ich eine Instanz des Converter-Objekts bekomme

Ich kann möglicherweise eine Instanz der Converter-Klasse erstellen, dies setzt jedoch Kenntnisse des Gson-Objekts voraus, das zum Erstellen des RestAdapters verwendet wird, auf das ich möglicherweise keinen Zugriff habe. Idealerweise möchte ich einen Verweis auf das Konverterobjekt direkt im RestAdpater erhalten.

Eine der folgenden Antworten auf meine Frage: Gibt es eine Möglichkeit, einen Verweis auf den von Retrofit verwendeten Standardkonverter zu erhalten? Weiß jemand, wie der Standardkonverter aufgebaut ist? (Es gibt keinen Standardkonstruktor und es gibt zwei Konstruktorenpublic GsonConverter(Gson gson) und öffentlicher GsonConverter (Gson gson, String charset) Gibt es eine andere Möglichkeit, um sowohl die unverarbeitete als auch die konvertierte Antwort im Synchronisationsmodus zu erhalten?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage