Дооснащение: необработанное тело ответа от тела, преобразованного в гсон - PullRequest
0 голосов
/ 22 сентября 2019

Я использую следующие библиотеки для модернизации.

'com.squareup.retrofit2:retrofit:2.5.0'
'com.squareup.okhttp:okhttp:2.7.5'
'com.squareup.retrofit2:converter-gson:2.5.0'
'com.squareup.okhttp3:logging-interceptor:3.10.0'

Как получить необработанный ответ в обратном вызове onResponse?Я уже искал его и получил много решений, которые сейчас не помогают.Я попытался response.raw().body.string() и response.body().source().toString(), который бросает не может прочитать тело из преобразованного тела.Я также пробовал response.body().string(), но в этом случае .string() не разрешено.Я могу записать ответ, используя перехватчик, но мне нужен этот ответ в моем onResponse() обратном вызове, а не просто печать в logcat.Мой модифицированный клиент:

public static ApiService getClient(Context context) {

    if (retrofit == null) {
        if (BuildConfig.FLAVOR.equalsIgnoreCase("dev")){
            retrofit = new Retrofit.Builder()
                    .addConverterFactory(GsonConverterFactory.create())
                    .baseUrl(BASE_URL)
                    .client(okHttpClient)
                    .build();
        }else {
            retrofit = new Retrofit.Builder()
                    .addConverterFactory(GsonConverterFactory.create())
                    .baseUrl(BASE_URL)
                    .client(SelfSigningClientBuilder.createClient(context))
                    .build();
        }

    }
    return retrofit.create(ApiService.class);
}

Мой интерфейс ретрофита:

@retrofit2.http.POST("weekly_driver_earning_report/")
@retrofit2.http.FormUrlEncoded
Call<List<DailyEarnings>> getDriverWeeklyEarnings(@retrofit2.http.Field("access_token") String access_token, @retrofit2.http.Field("start_date") String start_date, @retrofit2.http.Field("end_date") String end_date);
...