Retrofit 2.0 Wie drucke ich die volle json Antwort?
Ich bin bewegt von Volley Retrofit-aktuell version 2.0.
Drucken das vollständige json-response-code ?
umfasst:
compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'
compile 'com.squareup.retrofit:retrofit:2.0.0-beta2'
RestClient:
OkHttpClient client = new OkHttpClient();
client.interceptors().add(new Interceptor() {
@Override
public Response intercept(Interceptor.Chain chain) throws IOException {
Response response = chain.proceed(chain.request());
return response;
}
});
Gson gson = new GsonBuilder()
.setDateFormat("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'SSS'Z'")
.create();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ROOT)
.addConverterFactory(GsonConverterFactory.create(gson))
.client(client)
.build();
REST_CLIENT = retrofit.create(APIService.class);
APIService:
@GET("my/json")
Call<Model> getFeed();
In Aktivität - Aufrufen von API -:
Call<Model> call = RestClient.get().getFeed();
call.enqueue(new Callback<Model>() {
@Override
public void onResponse(Response<Model> response, Retrofit retrofit) {
Log.w("2.0 getFeed > response.raw() => ", response.raw().toString());//DONT WORK
Log.w("2.0 getFeed > retrofit => ", retrofit.toString());//DONT WORK
Log.w("2.0 getFeed > body => ", response.body().toString()); //DONT WORK
Log.w("2.0 getFeed > getStatus => ", response.body().getStatus());
}
@Override
public void onFailure(Throwable t) {
t.printStackTrace();
Log.e("2.0 getFeed > onFailure => ", t.toString());
}
});
InformationsquelleAutor der Frage Joolah | 2015-10-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Drucken die vollständige Antwort ist in json:
Wenn Sie möchte haben pretty print Funktion verwenden:
Beachten Sie, dass diese druckt die Daten deserialisiert (nicht Roh als Antwort zurückgegeben vom server). Die roh-Reaktion, würden Sie brauchen, um deal mit
HttpLoggingInterceptor
oder Ihre eigene version von interceptor. Ein anderer Ansatz für die Verwendung von http debuf-tools wieStetho
oderCharles Web Debugging Proxy
.InformationsquelleAutor der Antwort Maher Abuthraa
Plug in der folgenden interceptor-Klasse wie diese
//////Interceptor-Klasse
Mit freundlicher Genehmigung: https://github.com/square/retrofit/issues/1072#
InformationsquelleAutor der Antwort DGN
Eigentlich Platz schon eine Klasse erstellen, die nur für diese, fügen Sie einfach
Und in Retrofit -
Die interceptor-Klasse ist in maven central
Können Sie den Protokolliergrad festlegen in HttpLoggingInterceptor Klasse. KÖRPER ist der verbose-one (drucken alles, was den Körper). Weitere Informationen finden Sie auf OkHttp github
Vorsicht!
Vergessen Sie nicht, entfernen Abfangjäger (oder ändern Logging-Level auf "NONE") in der Produktion! Ansonsten Leute sehen Ihre Anfrage und Reaktion auf Log Cat.
InformationsquelleAutor der Antwort aldok
Versuchen, diese !!
Schauen Sie sich diese Demo !!!
InformationsquelleAutor der Antwort sreekumar
Erhalten Sie die volle Antwort im Json-in retrofit2.3.0 verwenden Sie unten.
dies funktioniert für mich.
InformationsquelleAutor der Antwort Dhiren
InformationsquelleAutor der Antwort user3551205
Versuchen Sie dies :
InformationsquelleAutor der Antwort Saurabh Mistry
Werfen Sie einen Blick auf okhttp3.logging-Paket Sie haben bereits HttpLoggingInterceptor, die Sie verwenden können, für Ihre Bedürfnisse.
Und von Ihnen abhängig, Sie können auch festlegen, Anmeldung Ebene.
und Sie können diese Abfangjäger zu Ihrer Anfrage wie bereits erwähnt - über OkHttpClient.Builder:
InformationsquelleAutor der Antwort Anton Kogan
InformationsquelleAutor der Antwort Антон Лялин
Können Sie set log-level für Ihr retrofit-adapter wie unten, und sehen, Reaktion und andere Daten wie header -, response-code vs.
Edit: Dies funktioniert nicht bei Retrofit-2.0. Wenn Sie mit den 1.9, die Sie verwenden können.
InformationsquelleAutor der Antwort savepopulation