Сергей
Тикет в бэк и не морочиться. Ну или пересортировывать у себя
Leonid
Сервер публичный? Или свой?
Leonid
Пересортировывать - бред, бэк пускай исправляет
padmitriy
как вариант постманом отправить те же хедеры в запросе как у тебя в 4.4 и 5.0 чтобы точно проверить
LeV
спасибо, парни!
LeV
проверяю через браузеры, ответ одинаковый. Может ретрофит как то преобразовывать ответ?
LeV
Порядок элементов в массиве вообще необязательный же, поэтому сортируй на устройстве
ну он сервером задается в правильном порядке. можно конечно отсортировать, но хотелось бы так понять в чем причина
Ferrero
Или hashmap в маппинге
LeV
нет, обычный запрос. около 10 постоянных парамертов @Query
Ferrero
А модель как маппится?
LeV
оно до преобразования в модель корявым становится
LeV
@Override public void onNext(ResponseBody responseBody) { try { JSONArray mainArray = new JSONArray(responseBody.source().readUtf8()); parseIndex(mainArray, true); } catch (JSONException e) { e.getMessage(); } catch (IOException e) { e.getMessage(); } catch (Exception e) { e.getMessage(); }
Ferrero
В интерцеторе джсон уже корявый?
LeV
вот на входе responseBody уже корявый
Ferrero
Ну значит проблема в бэке
LeV
но через браузер с того же телефона возвращает как положено)
Ferrero
Ретрофит может добавлять хэдеры с контент тайпом и прочим, но бэк то не должен на это смотреть вообще
LeV
ну устройство то же самое, запрос тот же, в приложении начинает косячить только на 4.4. вот и начал извращаться и проверять браузром
LeV
хедеры не добавляю
Ferrero
🤦‍♂️
Ferrero
Все по кругу
LeV
https://stackoverflow.com/questions/7214293/is-the-order-of-elements-in-a-json-list-preserved
значит они упорядочены) кстати в довесок щас обратил внимание, порядок полей в объектах - тоже отсортирован не так как возвращается
Ferrero
Порядок полей вообще не может существовать
Ferrero
Только если там не используется SortedHashMap
LeV
Порядок полей вообще не может существовать
это понятно. этот вопрос не критичен, обрабатывается нормально, но прост именно на 4.4 он другой нежели на других устройствах.
Ferrero
Да сколько можно твердить одно и тоже)
Ferrero
Открываешь две разные версии приложения - смотришь в логи запроса
Ferrero
Находишь разницу в том, что запрашивает клиент, затем тестируешь тоже самое через постман
LeV
ок, спасибо) щас буду посмотреть. но чет мне кажется ни к чему это не приведет
LeV
в смысле на какой уровень?
padmitriy
в смысле на какой уровень?
уровень подробности логов
LeV
а я хз где он настраивается
padmitriy
а я хз где он настраивается
тыж говоришь что на интерцепторе смотришь, а чем тогда смотришь?
LeV
а где настроики у него?
LeV
Level.BODY
padmitriy
Level.BODY
полные, значит со всеми хедерами итд
Ferrero
Level.VERBOSE
padmitriy
Level.VERBOSE
ты про что-то другое
Ferrero
ты про что-то другое
Видимо перепутал
padmitriy
Видимо перепутал
okhttp3.logging.HttpLoggingInterceptor я про это
LeV
HttpLoggingInterceptor logging = new HttpLoggingInterceptor(); logging.setLevel(HttpLoggingInterceptor.Level.BODY); OkHttpClient okHttpClient = builder .addInterceptor(logging) .build();
LeV
про это?
Vitaly
При проектировании паттерна MVP нужно ли у Presenter реализовывать интерфейс или лучше без него?
LeV
все парни, затупок я) на уровне интерсептора все ровно, приходит правильно. но когда читаю ResponseBody, он уже корявый
Кирилл
используй мокси, там презентер безинтерфейсовый
Самый странный совет относительно либы, который я когда-либо слышал. :)
LeV
:) голова дымит
padmitriy
HttpLoggingInterceptor logging = new HttpLoggingInterceptor(); logging.setLevel(HttpLoggingInterceptor.Level.BODY); OkHttpClient okHttpClient = builder .addInterceptor(logging) .build();
не там ответил ну вот, ближе к цели. Покажи json и метод что ждешь в ретрофите
LeV
json огромный) @Override public void onNext(ResponseBody responseBody) { try { JSONArray mainArray = new JSONArray(responseBody.source().readUtf8()); parseIndex(mainArray, true); } catch (JSONException e) { e.getMessage(); } catch (IOException e) { e.getMessage(); } catch (Exception e) { e.getMessage(); }
LeV
вот тут ответ разбираю
padmitriy
а gson не пробовал?
LeV
но именно тут на входе responsуBody уже пересортированный
LeV
там внутри использую gson, в одну модель это описать нереально
LeV
ща куда нить запихну json чтоб сюда скинуть
padmitriy
но именно тут на входе responsуBody уже пересортированный
а почему решил что он на входе уже битый?
LeV
дебагером остановил и посмотрел
Ivansuper
дебагером остановил и посмотрел
Ты уверен что у тебя именно массивы меняют порядок?
Ivansuper
Жсон спек гарантирует только порядок того что в [ ] скобах
Ivansuper
Остальное может быть в разнобой и это норма
LeV
Ну в этих скобках же как раз массив
LeV
Порядок элементов другой
Ivansuper
Скидывай жсон
Кирилл
Можно ссылочку?
Группа «Android Architecture» в Telegram: https://t.me/Android_Architecture
Alex
спасибо большое
Turalllb
Добрый день, хотел бы взглянуть на твой проект с CRUD который ты мне скидывал, что то потерял ссылку, есть возможность? разбираюсь с этим rest и протоколами
Turalllb
И еще кто может подсказать какой нибудь сайт с нормальным api, на котором можно потренироваться с restful
Алексей
https://github.com/toddmotto/public-apis
Turalllb
https://github.com/toddmotto/public-apis
ооо сколько их) спасибо)
Dmitry
всем привет. Кто-нибудь сталкивался с такой проблемой https://stackoverflow.com/questions/55391986/android-jetpack-appcompattextview-settypeface-stackoverflowerror-because-of-an-i? Если да, то как решали?
Sergey
обновить на последнюю версию не пробовал?