J'ai besoin d'un corps de requête et d'effectuer certaines opérations logiques avec Retrofit 2.0 avant de procéder à l'opération enque
. Mais malheureusement, je ne suis pas en mesure d'obtenir le contenu du corps de message de mon appel de service. À l'heure actuelle après avoir beaucoup cherché, j'ai trouvé une seule solution comme logging
le request
que je poste en utilisant Retrofit 2.0 de this method en utilisant HttpLoggingInterceptor
avec OkHttpClient
. J'utilise le code suivant pour vous connecter le corps de demande dans l'Android Logcat:Obtention du contenu du corps de la demande à l'aide de la méthode POST de Retrofit 2.0
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
logging.setLevel(Level.BODY);
OkHttpClient httpClient = new OkHttpClient();
httpClient.interceptors().add(logging);
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(baseURL)
.addConverterFactory(GsonConverterFactory.create())
.build();
return retrofit.create(apiClass);
Problème Je suis face à la méthode ci-dessus:
- corps de la demande ne sont vus que sur la valeur par défaut Android Logcat comme
02-04 01:35:59.235 5007-5035/com.example.retrofitdemo D/OkHttp:{"nameValuePairs":{"id":"1","name":"chandru","type":"user"}}
Mais la méthode ci-dessus renvoie ONL y corps de réponse dans le logcat, je ne suis pas en mesure de l'obtenir soit String
ou JSONObject
. Bien que si je pouvais obtenir le corps de la réponse en utilisant HttpLoggingInterceptor
, mon corps de la requête sera affiché dans le Logcat avec la balise "OkHttp" tout le temps même après que l'application entre dans la production (Donc, cela conduit en quelque sorte à publier des données dans le logcat).
Mon exigence:
J'ai besoin pour obtenir le corps de la demande comme String
ou JSONObject
ou toute autre méthode sans injuriant les données de poste dans le Logcat.
Ce que j'ai essayé:
J'ai essayé d'aller chercher le corps de la demande même après onResponse
de Response<T> response
, mais si je ne pouvais pas en mesure de l'obtenir fait possible. S'il vous plaît trouver le code que j'utilise à cet effet comme suit:
Gson gson = new Gson();
String responseString = gson.toJson(response.raw().request().body());
Note: Le corps de la requête convertie ci-dessus à l'aide gson.toJson
méthode renvoie uniquement les données méta pas les données post demande.
Veuillez m'aider avec ceci en fournissant vos conseils et solutions valables. Je n'ai aucune idée comment faire ça. Je suis complètement coincé avec cela pour les deux derniers jours. S'il vous plaît pardonnez si ma question est trop longue. Vos commentaires sont toujours les bienvenus. Faites-moi savoir si mes exigences ne sont pas claires. Merci d'avance.
avez-vous la solution pour cela, m face aussi problème avec ce – sector11
Non pas encore. Faites-moi savoir si vous en avez. – Chandru