Как перехватить IOException в методе onResponse в OKHTTP3? - PullRequest
0 голосов
/ 18 сентября 2018

Я использую OkHttp3 для вызова служб, которые мне нужны. Метод onResponse выглядит так:

@Override public void onResponse(Response response) throws IOException {
if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);}

Я занимаюсь разработкой библиотеки, поэтому у пользователя не должно быть доступа к этому коду. Как я могу распространить это исключение в пользовательском интерфейсе, чтобы разработчик, использующий мою библиотеку, мог справиться с этим IOException?

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Вы можете создать класс abstract, который должен реализовывать okhttp3.Callback. В вашем классе abstract вам нужно будет определить некоторые abstract методы, с которыми вы сможете взаимодействовать с пользователем и выполнятьзадание, которое вы хотите выполнить в своем абстрактном классе.

Вот пример кода, который я написал для пропуска некоторого повторяющегося кода, который мне пришлось написать ранее.

Примечание: - Этот интерфейс Callback реализован здесьэто от дооснащения не в порядке

0 голосов
/ 18 сентября 2018

Создайте пользовательский метод, который получает пользовательский слушатель в качестве аргумента.

@Override private void onResponse(Response response) throws IOException {
if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);}

public yourCustomMethod(MyListener listener) {
            try {
                //make the http call here
            } catch (IOException ex) {
                lister.IOException();
            }
}
...