Вы используете response.body().string()
дважды
Из документации OkHttp 3 : Тело ответа можно использовать только один раз.
Выможно создать локальную переменную и использовать ее
@Override
public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {
ResponseBody body = response.body();
if(body != null) {
try {
//Use it anytime you want
String responseString = body.string();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Или вы можете скопировать ResponseBody
@Override
public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {
ResponseBody body = response.body();
//Warning: this method loads the requested bytes into memory. Most
// applications should set a modest limit on {@code byteCount}, such as 1 MiB.
int bufferSize = 1024 * 1024;
ResponseBody copy = response.peekBody(bufferSize);
}
Но будьте осторожны, чтобы правильно использовать bufferSize
, чтобы предотвратить OutOfMemoryError
Ps вам не нужно записывать строку в Logcat.Есть несколько более эффективных способов отладки клиента OkHttp, таких как