Android Retrofit 2, различия между addInterceptor и addNetworkInterceptor для редактирования ответовAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Android Retrofit 2, различия между addInterceptor и addNetworkInterceptor для редактирования ответов

Сообщение Anonymous »

Я пытался реализовать перехватчик ( OkHttp 3.2 и Retrofit 2 ) для редактирования ответа JSON до того, как он будет возвращен в качестве ответа. Сервер, который мы запрашиваем, возвращает разные данные, в зависимости от успеха или ошибки, что затрудняет сопоставление объектов.

Я пытался сделать это, добавив перехватчик в Retrofit в качестве NetworkInterceptor, однако возвращенная строка не имела формата.

Код: Выделить всё

@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();

Response response = chain.proceed(request);
try {

final String responseString = new String(response.body().bytes() );

LOGD("OkHttp-NET-Interceptor", "Response: " + responseString);

String  newResponseString = editResponse( responseString );

LOGD("OkHttp-NET-Interceptor", "Response edited: " + newResponseString);
return  response.newBuilder()
.body(ResponseBody.create(response.body().contentType(), newResponseString))
.build();

}catch (Exception ex){
return response;
}
}
responseString содержал строку без какого-либо понятного формата.

После перехода на обычный перехватчик строка имела формат a, который можно было преобразовать в JSONObject.

Может ли кто-нибудь сказать мне, в чем различия между ответами?

почему эта строка new String(response.body().bytes() ); возвращает другое содержимое?

Подробнее здесь: https://stackoverflow.com/questions/371 ... erceptor-f
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»