Obtendo conteúdo do corpo da solicitação usando o método POST do Retrofit 2.0
Eu tenho um requisito para obter um corpo de solicitação e executar algumas operações lógicas com o Retrofit 2.0 antes de executarenque
Operação. Infelizmente, não consigo obter o conteúdo do corpo da postagem da minha chamada de serviço. No momento, depois de pesquisar muito, encontrei apenas uma solução comologging
arequest
que estou postando usando o Retrofit 2.0 deeste método usandoHttpLoggingInterceptor
comOkHttpClient
. Estou usando o código a seguir para registrar o corpo da solicitação no Android Logcat:
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);
Problema que estou enfrentando com o método acima:
O corpo da solicitação é visto apenas no Android Logcat padrão, como02-04 01:35:59.235 5007-5035/com.example.retrofitdemo D/OkHttp:{"nameValuePairs":{"id":"1","name":"chandru","type":"user"}}
Mas o método acima retorna apenas o corpo da resposta no logcat, não consigo obtê-lo comoString
ouJSONObject
. Mesmo que eu pudesse obter o corpo da resposta usandoHttpLoggingInterceptor
, meu corpo de solicitação será mostrado no Logcat com a tag "OkHttp" o tempo todo, mesmo depois que o aplicativo entrar em produção (principalmente isso leva a uma espécie de alívio dos dados de postagem no logcat).
Minha exigência:
Preciso obter o corpo da solicitação comoString
ouJSONObject
ou qualquer outro método sem revelar os dados de postagem no Logcat.
O que eu tentei:
Tentei buscar o corpo da solicitação mesmo depoisonResponse
deResponse<T> response
, mas não consegui fazer isso possível. Encontre o código que estou usando para esse fim da seguinte maneira:
Gson gson = new Gson();
String responseString = gson.toJson(response.raw().request().body());
Nota: O corpo da solicitação convertida acima usandogson.toJson
O método retorna apenas os metadados e não os dados de postagem da solicitação.
Por favor, me ajude com isso, fornecendo dicas e soluções valiosas. Eu não tenho nenhuma idéia de como fazer isso. Estou completamente preso a isso nos últimos dois dias. Por favor, perdoe se minha pergunta for muito longa. Seus comentários são sempre bem-vindos. Informe-me se minha exigência não estiver clara. Desde já, obrigado.