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

OSCHINA-MIRROR/huyistudio-Snet

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

Какова была первоначальная цель Snet?

  • Создание простого фреймворка запросов.
  • Предоставление возможности использовать офлайн данные для моделирования запросов. Особенно полезно, когда сервер ещё не готов к работе с бэкендом, можно использовать тестовые данные в коде для проверки работы 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(ConnectionBuilder builder) {
		super(builder);
	}
// Обработка ошибок в фоновом потоке.
	@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;
	}

}

3. Прямое использование в Activity

    //1. Создание необходимых параметров запроса, таких как url и параметры.
		ConnectionBuilder builder = new ConnectionBuilder(
				"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();

Обратная связь

Если вы столкнетесь с проблемами при использовании или у вас есть новые идеи и предложения, пожалуйста, свяжитесь со мной через следующие контактные данные:

О создателе

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

Комментарии ( 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