Mam wymóg uzyskania treści żądania i wykonania niektórych operacji logicznych z Retrofit 2.0 przed wykonaniem operacji enque
. Ale niestety nie mogę pobrać treści treści posta z mojego zgłoszenia serwisowego. Obecnie po wielu poszukiwaniach znalazłem tylko jedno rozwiązanie, takie jak logging
, request
, które publikuję za pomocą Retrofit 2.0 z this method przy użyciu HttpLoggingInterceptor
z OkHttpClient
. Używam następujący kod do logowania ciało życzenie w Android logcat:Uzyskiwanie treści treści żądania za pomocą metody POST 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);
Problem jestem stoi z powyższej metody:
- żądanie ciała są widoczne tylko na domyślnie Android logcat jak
02-04 01:35:59.235 5007-5035/com.example.retrofitdemo D/OkHttp:{"nameValuePairs":{"id":"1","name":"chandru","type":"user"}}
jednak powyższa metoda zwraca onl y ciało odpowiedzi w logcat, nie jestem w stanie uzyskać go jako String
lub JSONObject
. Mimo że gdybym był w stanie uzyskać ciało odpowiedzi za pomocą HttpLoggingInterceptor
, moja treść zapytania będzie wyświetlana w Logcat z tagiem "OkHttp" przez cały czas, nawet po tym, jak aplikacja wejdzie do produkcji (więc przede wszystkim prowadzi to do pewnego rodzaju odciążenia opublikować dane w logcat).
Moja Wymagania:
Muszę dostać ciało żądania jako String
lub JSONObject
lub dowolnej metody bez drwiąc dane stanowisko w logcat.
Co próbowałem:
próbowałem sprowadzić ciało żądań nawet po onResponse
od Response<T> response
, ale chociaż nie mogłem w stanie zrobić to możliwe. Proszę znaleźć kod, który używam do tego celu, co następuje:
Gson gson = new Gson();
String responseString = gson.toJson(response.raw().request().body());
Uwaga: Powyższy przerobiona ciało żądanie przy użyciu gson.toJson
metoda zwraca tylko dane meta nie dane żądania POST.
Uprzejmie pomóżcie mi z tym, dostarczając cennych wskazówek i rozwiązań. Nie mam pojęcia, jak to zrobić. Całkowicie się z tym uporałem przez ostatnie dwa dni. Proszę wybaczyć, jeśli moje pytanie jest zbyt długie. Twoje komentarze są zawsze mile widziane. Daj mi znać, jeśli moje wymagania nie są jasne. Z góry dziękuję.
wziąłeś rozwiązanie tego problemu, m stoi również problemu z tym – sector11
Nie jeszcze nie. Daj mi znać, jeśli dostaniesz. – Chandru