1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/huyistudio-Snet

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Цель создания Snet

  • Создание простого фреймворка для запросов.
  • Предоставление возможности использовать оффлайн данные для моделирования запросов.
    • Особенно полезно, когда сервер еще не готов к работе с backend, можно использовать тестовые данные для проверки Android-кода.

Функции Snet

  • Многообразие настроек сети
    • Время ожидания, кодировка, отладочный вывод и т.д.
  • Упрощение методов сетевых запросов
    • Поддержка только GET и POST запросов, что должно быть достаточно для разработки Android.
  • Отсутствие необходимости следить за процессом запроса
    • Обязательные параметры: адрес запроса
    • Необязательные параметры: заголовок запроса, параметры запроса
  • Возврат результатов в UI-потоке
    • Не требуется преобразование и использование Handler.
  • Возможность настройки функции моделирования с использованием оффлайн данных
    • Заполнение возвращаемых данных локальными данными. Моделирование реальной среды.

Как использовать

1. Инициализация Snet в Application

// Здесь инициализируется SnetConfig.
// Не забудьте указать атрибут Application в Manifest:
// android:name="top. wecreate. snet. demo. DemoApplication"
SnetConfig.init(new SnetConfigBuilder().setConnectionTimeout(2000));

2. Наследование от SnetBaseConnection и реализация обработки результатов

// Два виртуальных типа, используемые для правильного результата и ошибки.
public abstract class DemoSnetConnection extends SnetBaseConnection<String, String> {
    public DemoSnetConnection(ConnetionBuilder builder) {
        super(builder);
    }
}
``````markdown
### 3. Прямое использование в Activity

    // Обработка исключений в отдельном потоке.
    @Override
    protected void processExceptionBackground(Exception e) {
        setFailResult(e.toString());
    }

    // Обработка возвращаемых данных в отдельном потоке.
    @Override
    protected void processResponseBackground(int responseCode,
            Map<String, List<String>> responseHeaders, byte[] responseBody) {
        if (responseCode == 200) {
            // Возвращаемые данные корректны, обрабатываем и устанавливаем правильное значение.
            setSuccessResult(new String(responseBody));
        } else {
            // Возвращаемые данные некорректны, обрабатываем и устанавливаем ошибочное значение.
            setFailResult("Сетевая ошибка");
        }
    }

    // Использование локальных оффлайн данных для тестирования исключений, можно настроить исключения.
    @Override
    protected Exception fillTestException() {
        return new Exception("исключение для тестирования");
    }

    // Использование локальных оффлайн данных для тестирования корректного возврата.
    @Override
    protected TestResponse fillTestResponse() {
        TestResponse response = new TestResponse();
        response.setCode(200);
        response.setBody(new String("ответ для тестирования").getBytes());
        return response;
    }
}
``````java
    // 1. Строим параметры запроса, такие как url и параметры
    ConnetionBuilder builder = new ConnetionBuilder(
            "http://www. wecreate. top/server. php");
    Map<String, String> params = new HashMap<>();
    params.put("action", "adduserinfo");
    builder.setRequestParams(params);
    // 2. Используем builder для построения запроса.
    DemoSnetConnection connection = new DemoSnetConnection(builder) {
        @Override
        public void onSuccess(String result) {
            // TODO Успешный результат, в UI-потоке
        }
        @Override
        public void onFail(String result) {
            // TODO Неудачный результат, в UI-потоке
        }
    };
    // 3. Отправляем запрос. Два способа отправки
    // connection.post();
    connection.get();
```## Обратная связь
Если у вас возникли какие-либо проблемы при использовании, пожалуйста, сообщите мне; или если у вас есть новые идеи и предложения, вы можете связаться со мной по следующим контактам:
* Электронная почта: 814084764@qq.com

### О авторе
Автор, который любит писать код, но всегда делает это не очень хорошо, как квалифицированный рабочий. 

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Простая сетевая структура запросов на Android. Запросы можно инициировать в основном потоке, в библиотеке активирован многопоточный запрос. Разработчик должен сосредоточиться только на запросе и результате. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Язык

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/huyistudio-Snet.git
git@api.gitlife.ru:oschina-mirror/huyistudio-Snet.git
oschina-mirror
huyistudio-Snet
huyistudio-Snet
master