#МодульСети
Добавьте запросы, используя пакет cn.bvin.lib.module.net.volley
. В этом классе есть три статических метода: addRequest
для добавления запросов, clearRequest
для отмены определенных запросов в очереди и cancelAll
для отмены всех запросов.
Другие производные библиотеки включают RequestActivity
, RequestFragment
, RequestService
и т.д., все они используют статические методы этого класса для отправки запросов, но также добавляют свою собственную логику. Если вам нужно реализовать сетевые запросы в различных сценариях, вам потребуется вызвать методы этого класса для добавления запросов.
cn.bvin.lib.module.net.Request
:
Состоит из строки URL и объекта RequestParam
. В будущем этот объект запроса будет использоваться как унифицированный формат для обычных (строковых) запросов и передачи файлов (загрузки/скачивания).
cn.bvin.lib.module.net.RequestParam
:
Класс параметров запроса, важный параметр для объекта Request
, который используется для передачи данных на сервер. Если запрос представляет собой простой GET запрос по URL, то объект RequestParam
не требуется, но большинство POST интерфейсов требуют предоставления множества параметров, поэтому был создан абстрактный класс RequestParam
. Этот класс имеет четыре конструктора, соответствующие четырем типам параметров, включая файлы, массивы байтов, HttpEntity
, MapParam
(формат Map<String, String>
), и может быть расширен в будущем.com.android.volley.Request
:
Абстрактный класс запроса из библиотеки Volley, подробное описание можно найти в документации, здесь не будем подробно останавливаться на этом.
cn.bvin.lib.module.net.volley.RequestManager
:
Универсальный менеджер запросов, отвечающий за добавление запросов в очередь запросов.
/**
* Добавить запрос
* @param request Объект запроса
* @param tag Тег, с помощью которого можно управлять (отменять) запрос
*/
public static void addRequest(Request request, Object tag) {
request.setTag(tag != null ? tag : request.getUrl());
mRequestQueue.add(request);
}
/**
* Добавить запрос, используя URL запроса в качестве тега
* @param request Объект запроса
*/
public static void addRequest(Request request) {
addRequest(request, null);
}
``````markdown
MapParam mp = new MapParam();
mp.put("p1", "v1");
mp.put("p2", "v2");
// Функция WrapRequest используется для преобразования собственного запроса в запрос типа Volley
// Ниже приведены четыре различных типа параметров
WrapRequest wrMap = new WrapRequest(url, new RequestParam(mp));
WrapRequest wrFile = new WrapRequest(url, new RequestParam(new File(url)));
WrapRequest wrHttpEntity = new WrapRequest(url, new RequestParam(new HttpEntity()));
WrapRequest wrBytes = new WrapRequest(url, new RequestParam(new byte[0]));
// CheckRequest наследует Request из Volley и требует передачи WrapRequest и пользовательского слушателя состояния запроса
// CheckRequest получает URL и параметры из WrapRequest (в виде массива байтов, перезаписывая метод getBody)
CheckRequest request = new DefaultCheckRequest(Method.POST, wrMap, new DefaultCheckListener() {
@Override
public void onUpdateFound(UpdateInfo updateInfo) {
}
@Override
public void onUpdateNotFound() {
}
@Override
public void onCheckFailure(Throwable e) {
}
});
RequestManager.addRequest(request); // Отсутствие параметра тега автоматически присваивает URL в качестве метки запроса
// RequestManager.addRequest(request, request.getUrl());
RequestManager.clearRequests(request.getTag()); // Удаление запроса по метке
// request.cancel(); // Запрос также может быть отменен самим собой
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )