Skip to content
This repository has been archived by the owner on Apr 21, 2023. It is now read-only.

Ошибка с кодировкой #1

Closed
vapv opened this issue Mar 29, 2017 · 9 comments
Closed

Ошибка с кодировкой #1

vapv opened this issue Mar 29, 2017 · 9 comments
Assignees
Labels

Comments

@vapv
Copy link

vapv commented Mar 29, 2017

При формировании запроса используется системная кодировка

private String fetchJson(String method, String requestMethod, String... sources) { ... outputStream.write(gson.toJson(sources).getBytes()); ... }

Нужно исправить на UTF-8:

outputStream.write(gson.toJson(sources).getBytes(StandardCharsets.UTF_8));

@sshikov
Copy link

sshikov commented May 10, 2017

Приводит к другим, непредсказуемым проблемам. Например, приходит ответ 400 от сервера, который не может обработать запрос в неверной кодировке. Если эту проблему исправить - то все работает.

@leon0399
Copy link
Owner

@sshikov Сегодня-завтра исправлю, плюс будут добавлены новые функции из новых обновлений API

@sshikov
Copy link

sshikov commented May 10, 2017

Спасибо. Было бы очень неплохо, если бы обработка исключений не только писала что-то в логи, но и возвращала какой-то результат (JSON) с ошибками. А то сейчас возвращается null, который потом вызывает всякие другие проблемы при попытке его обработать. Ну или уж пробросить исключение наружу, чтобы не было иллюзий, что запрос успешно завершился.

@leon0399
Copy link
Owner

@sshikov Наверное, лучше будет пробрасывать ошибку, так как методы API возвращают какие-либо классы, а не JSON-строку

@leon0399 leon0399 self-assigned this May 10, 2017
@leon0399 leon0399 added the bug label May 10, 2017
@vapv
Copy link
Author

vapv commented May 10, 2017

Спасибо, ждем обновлений!

Согласен с @sshikov , по исключениям хотелось бы хотя бы видеть проброс ошибок хотя бы для основных ошибочных кейсов :

  1. Ошибка аутентификации
  2. Нет денег на балансе
  3. Сервер не доступен
  4. Ошибка нормализации адреса
    ..

Сейчас в IOException заворачиваются ошибки 1-2, что затрудняет их обработку.

@sshikov
Copy link

sshikov commented May 15, 2017

Я имел в виду, что можно вместо JSON ответа сервера сформировать свой, содержащий описание ошибки (или просто вернуть объект с ее описанием). Но просто пробросить exception тоже вполне нормально.

@sshikov
Copy link

sshikov commented May 19, 2017

Да, неплохо было бы toString() реализовать для классов модели, а то там от Object, т.е. бесполезный.

@leon0399
Copy link
Owner

@vapv @sshikov Народ, вы конечно извините, что пообещал, но так ничего и не сделал. Просто сессия подкралась незаметно и времени почти нет

@sshikov
Copy link

sshikov commented May 24, 2017

Да ладно, не стоит. Код же открыт, я лично для себя кодировку уже исправил, а остальное - подождем )

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

3 participants